PyQt QGraphicsView无法设置WindowsWindowIcon

时间:2010-08-19 13:49:04

标签: pyqt pyqt4 qgraphicsview

我在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中尝试时,为什么忽略了我?

1 个答案:

答案 0 :(得分:0)

看着C++ docs for the windowIcon property,他们说如果小部件实际上是一个窗口,那么该属性才有意义。我认为你的QGraphicsView实际上并不是你的窗口?

相比之下,docs for the windowTitle property表示该属性对于顶级小部件更为普遍。这可能是造成不同行为的原因。