说一旦启动Qt应用程序,有没有办法显示一个灰色的主窗口,并禁用所有的小部件(按钮/复选框/等) - 无法点击。一旦用户打开文件或执行一些初始化过程,主窗口将变为非灰色并启用所有小部件。这在Qt中可能吗?Qt灰化并禁用所有在MainWindow中的动作
2
A
回答
2
是的。只需拨打QWidget::setEnabled(false)
即可禁用窗口/窗口小部件,然后拨打QWidget::setEnabled(true)
即可启用它。 http://qt-project.org/doc/qt-4.8/qwidget.html#enabled-prop
顺便说一下,Qt文档非常全面。只要在那里搜索,你应该很容易找到许多问题的答案。
0
在我的软件,创建一个新的小部件之前,我禁用父窗口中的所有按钮与此:
void MainWindow::disableAllButtons(bool toBeEnabled){
QList<QPushButton *> buttonsList = this->findChildren<QPushButton *>();
for (int i = 0; i < buttonsList.count(); i++){
buttonsList.at(i)->setEnabled(toBeEnabled);
}
}
当然,我不得不再次调用此方法,在关闭窗口小部件时,重新启用按钮。 猜测它可以适应禁用/启用其他类型的小部件。它适用于QT 4.8。
0
添加一个灰色叠加标签,这些大小等于您的主窗口。当然,不要忘记setEnabled(false)
。
相关问题
- 1. 在工作线程中使用QT MainWindow
- 2. Qt - 错误:ISO C++禁止声明'MainWindow'没有类型
- 3. Qt MainWindow在Linux中的位置
- 4. Qwidget中的Qt :: Pixmap没有显示在MainWindow中
- 5. Qt C++ MainWindow :: setMenuWidget无法正常工作
- 6. 为什么Qt中的MainWindow在启动程序后关闭?
- 7. 选择所有选项并禁用在IE中不工作
- 8. 在Qt中的两个MainWindow()之间进行通信Qt
- 9. 禁用并灰掉treenode的复选框
- 10. Qt插槽和信号:在MainWindow中没有匹配的功能
- 11. 禁用灰色的道场网格的所有内容
- 12. Qt更改MainWindow几何
- 13. 设置一个Qt :: MainWindow
- 14. 有没有办法灰化(禁用)tkinter框架?
- 15. 禁用所有动画在Android应用
- 16. 禁用Qt中的进度条动画
- 17. SWT - 灰掉并禁用当前shell
- 18. 禁用并灰掉SWT复合
- 19. Qt - 在MainWindow上显示由QListWidget选择的动画GIF
- 20. Qt没有调用mainWindow :: connect()的匹配函数
- 21. 动态SQLite ListView onUpdate灰化所有项目
- 22. 在hideActionsets中禁用动作
- 23. QT C++ - 在线程类中使用MainWindow类QString
- 24. Qt:禁用按钮但不将其变为灰色
- 25. 只设置MainWindow的背景色Qt
- 26. 在MainWindow中打开新的UserControl将删除所有空行
- 27. pyQt5变化MainWindow Flags
- 28. QT没有匹配函数调用'MainWindow :: connect()
- 29. 禁用并灰掉Bootstrap中的复选框标签
- 30. 在Android Studio中禁用所有代码重新格式化
我想OP是想知道如何抓住所有的动作并且立即禁用它们,而不是单独禁用它们。 –