1

我在 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'))

那么为什么当我从视图中尝试它时它会忽略我呢?

4

1 回答 1

0

查看windowIcon 属性的 C++ 文档,他们说该属性仅在小部件实际上是窗口时才有意义。我假设您QGraphicsView实际上不是您的窗口?

相比之下,windowTitle 属性的文档说该属性对于顶级小部件更普遍。这可能是不同行为的原因。

于 2010-08-19T14:11:02.777 回答