QPushButton 处于非活动状态,直到 MainWindow 获得焦点
QPushButton is inactive till MainWindow gets focus
我有一个带有三个QPushButtons的QMainWindow(排列在QWidget的QVBoxLayout中)。它们都具有相同的属性,除了对象名称、图标和图标大小。所有这些都已启用,并有两个图标,一个用于正常,一个用于禁用。
当我启动我的应用程序时,总是最上面的图标显示禁用的图标(但正在工作,所以它已启用)其他两个都很好。一旦该窗口中的可聚焦控件获得焦点,图标就会变为活动控件,一切正常。
在窗口的 showEvent 中调用update
或repaint
也无济于事。
我正在使用 gcc 4.8.1 和 qt 5.1.0。
任何想法如何处理这个故障?
更新:它变得更加奇怪:启动程序,图标显示禁用,让另一个应用程序获得焦点,图标显示已启用,再次将窗口置于顶部而不给它焦点(例如,通过使用任务栏)将图标更改回禁用。单击窗口中可以具有焦点的控件将再次修复它。
好吧,我终于明白了。我只是在代码中手动设置焦点并意识到图标设置的方式错误。如果按钮当前已聚焦,则会显示禁用图标。我搞砸了不同的按钮状态,太多的状态得到了禁用的图标。
相关文章:
- 有没有办法区分Qt小部件是通过鼠标单击还是通过按表键获得焦点?
- MFC:如何设置CEdit框的焦点?
- 在Visual Studio中单实例Qt应用程序版本5.11.1中,在所有其他窗口的顶部打开Qt MainWindow
- 在 ubuntu 焦点上编译虚幻引擎 4.25 时出错
- 如何在 wxWidgets 中从 wxTextCtrl 中删除焦点
- 每次qt窗口获得焦点时调用函数
- Qt如何在QRect上设置焦点
- 在树状视图中双击后焦点丢失
- FLTK:窗口在 MacOS 上获得焦点时的事件
- 禁用对透视的焦点
- 如何通过 Qdialog 中的 qtablewidget 填充作为 MainWindow 成员的 qvector
- QT 库 QObject::connect: 无法连接 (null)::done() 到 MainWindow::upd
- Qt从另一个类修改MainWindow
- 如何将Singleton类信号连接到MainWindow类插槽或方法
- 当焦点丢失时,全屏GLFW窗口消失了
- 当在QTableView上丢失焦点时,失去背景颜色
- 即使另一个应用具有焦点,检测F1密钥的按键(和覆盖)键
- 当我的程序不在焦点中时,不拾取 GetAsyncKeyState. 在游戏中不工作
- 如何释放QPushButton的焦点,这是QDialog的默认按钮
- QPushButton 处于非活动状态,直到 MainWindow 获得焦点