【问题标题】:PyQt QGraphicsView fails to setWindowIconPyQt QGraphicsView 无法设置窗口图标
【发布时间】:2011-04-01 03:31:44
【问题描述】:

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

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

【问题讨论】:

    标签: pyqt pyqt4 qgraphicsview


    【解决方案1】:

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

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

    【讨论】:

    • QGraphicsView 不是我理解的“顶级”小部件......因为它有一个父 QMdiSubWindow......它似乎有点不一致。 setWindowTitle() 适用于 QGV 及其 parent() setWindowIcon() 仅适用于 parent() 但至少现在可以使用...谢谢:)
    • @Dan B:是的,那还是有点奇怪。我建议它更多的是标题属性而不是图标的错误!
    猜你喜欢
    • 1970-01-01
    • 2022-08-19
    • 2018-05-13
    • 1970-01-01
    • 2011-04-15
    • 2011-04-28
    • 2018-08-05
    • 2022-10-23
    • 2016-12-27
    相关资源
    最近更新 更多