我有一个带有三个 QPushButton 的 QMainWindow(排列在 QWidget 的 QVBoxLayout 中)。除了 objectName、icon 和 iconSize 之外,它们都具有相同的属性。全部启用并有两个图标,一个用于正常,一个用于禁用。
当我启动我的应用程序时,最上面的图标总是显示禁用图标(但正在工作,所以它已启用)其他两个都很好。一旦该窗口中的可聚焦控件获得焦点,图标就会变为事件控件,一切正常。
在窗口的 showEvent 中调用 update
或 repaint
也无济于事。
我正在使用 gcc 4.8.1 和 qt 5.1.0。
关于如何处理这个故障有什么想法吗?
更新: 变得更奇怪了:启动程序,图标显示禁用,让另一个应用程序获得焦点,图标显示启用,再次将窗口置于顶部但没有给它焦点(例如通过使用任务栏)将图标更改回已禁用。单击窗口中的一个控件,它可以有焦点将再次修复它。
最佳答案
好吧,好吧,我终于明白了。我只是在代码中手动设置焦点,然后意识到图标的设置方式有误。如果一个按钮当前被聚焦,它会显示禁用图标。我弄乱了不同的按钮状态,太多状态都有禁用图标。
关于c++ - 在 MainWindow 获得焦点之前,QPushButton 处于非事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19633435/