PyQt QGraphicsView未能setWindowIcon

问题描述:

我在MDIArea中使用子分类QGraphicsView 我希望能够从对象内部更改窗口的图标,但它似乎忽略了我...不错误或警告......它只是不这样做。PyQt QGraphicsView未能setWindowIcon

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(),这是错误的..所以不是空的。

正如我测试,我试图从主窗口对象的改变图标和工作正常...

self.mdiArea.activeSubWindow().setWindowIcon(QtGui.QIcon ('images/dirty.png')) 

那么为什么不理我,当我从视图试试吗?

看着C++ docs for the windowIcon property他们说属性只有在小部件实际上是一个窗口时才有意义。我假设你的QGraphicsView实际上不是你的窗户?

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

+0

QGraphicsView不是一个“*”小部件,因为我了解它们..因为它有一个父QMdiSubWindow ...它似乎有点不一致。 () setWindowTitle()适用于QGV及其父项() setWindowIcon()只适用于父项() 但现在至少它现在可行了......谢谢:) – 2010-08-19 15:00:05

+0

@丹B:是的,这仍然有点奇怪然后。我建议这是一个比标题属性更多的图标! – Troubadour 2010-08-19 15:05:00