QPushButton 处于非活动状态,直到 MainWindow 获得焦点

QPushButton is inactive till MainWindow gets focus

本文关键字:MainWindow 焦点 直到 于非 活动状态 QPushButton      更新时间:2023-10-16

我有一个带有三个QPushButtons的QMainWindow(排列在QWidget的QVBoxLayout中)。它们都具有相同的属性,除了对象名称、图标和图标大小。所有这些都已启用,并有两个图标,一个用于正常,一个用于禁用。

当我启动我的应用程序时,总是最上面的图标显示禁用的图标(但正在工作,所以它已启用)其他两个都很好。一旦该窗口中的可聚焦控件获得焦点,图标就会变为活动控件,一切正常。

在窗口的 showEvent 中调用updaterepaint也无济于事。

我正在使用 gcc 4.8.1 和 qt 5.1.0。

任何想法如何处理这个故障?

更新:它变得更加奇怪:启动程序,图标显示禁用,让另一个应用程序获得焦点,图标显示已启用,再次将窗口置于顶部而不给它焦点(例如,通过使用任务栏)将图标更改回禁用。单击窗口中可以具有焦点的控件将再次修复它。

好吧,我终于明白了。我只是在代码中手动设置焦点并意识到图标设置的方式错误。如果按钮当前已聚焦,则会显示禁用图标。我搞砸了不同的按钮状态,太多的状态得到了禁用的图标。