当窗口失去焦点时,如何禁用更改menuItems在QMenuBar中的外观?
现在,当窗口具有焦点时,菜单项清晰可见,但当它失去焦点时,项目为灰色,看起来像禁用。我希望它们一直看起来很正常。
我的平台是Windows7上的Qt4。
活动和非活动窗口上菜单项的一些简单屏幕截图:
答案 0 :(得分:1)
使用QStylesheets并利用QMenuItems的状态。
QPushButton{ background-color: blue; }
QPushButton:disabled{ background-color: yellow; }
QPushButton:pressed{ background-color: orange; }
QPushButton:focus:pressed{ background-color: black; }
QPushButton:focus{ background-color: green; }
QPushButton:hover{ background-color: red; }
QPushButton:checked{ background-color: pink; }
http://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar
另一个选项是,如果你想忽略样式表,可以试试调色板。
http://doc.qt.io/qt-5/qpalette.html#details
颜色组:
- “活动”组用于具有键盘焦点的窗口。
- 非活动组用于其他窗口。
- “已禁用”组用于因某些原因而被禁用的窗口小部件(而不是窗口)。
因此,您应该能够获取QMenuItem的调色板副本,将活动调色板复制到非活动调色板中,然后在QMenuItem上调用setPalette。 Tada,现在看起来总是很活跃。
希望有所帮助。