我在MDIArea中使用了子类QGraphicsView 我希望能够从对象内部更改窗口的图标,但它似乎忽略了我......没有错误或警告......它只是不这样做。
if self.world.is_dirty:
self.setWindowIcon( QtGui.QIcon ( 'images/dirty.png' ) )
self.setWindowTitle('dirty')
else:
self.setWindowIcon( QtGui.QIcon ( 'images/clean.png' ) )
self.setWindowTitle('clean')
使用上面的内容,WindowTitle会按预期完美地改变,但是图标仍然固执地固定为MainWindow图标。我认为它可能与QIcon有关,但我已经检查了isNull()并且这是假的..所以不是Null。
在测试时,我尝试从MainWindow对象中更改图标,这样可以正常工作......
self.mdiArea.activeSubWindow().setWindowIcon(QtGui.QIcon ('images/dirty.png'))
那么,当我从View中尝试时,为什么忽略了我?
答案 0 :(得分:0)
看着C++ docs for the windowIcon property,他们说如果小部件实际上是一个窗口,那么该属性才有意义。我认为你的QGraphicsView
实际上并不是你的窗口?
相比之下,docs for the windowTitle property表示该属性对于顶级小部件更为普遍。这可能是造成不同行为的原因。