在启动Qt应用程序时说,有没有办法显示灰色的主窗口,并禁用所有小部件(按钮/复选框等) - 无法单击。用户打开文件或执行某些初始化过程后,主窗口将变为非灰色并启用所有窗口小部件。这在Qt中是否可能?
答案 0 :(得分:4)
是。只需调用QWidget::setEnabled(false)
来禁用窗口/窗口小部件,然后QWidget::setEnabled(true)
启用它。 http://qt-project.org/doc/qt-4.8/qwidget.html#enabled-prop
顺便说一句,Qt文档非常全面。只需在那里搜索,您就可以轻松找到许多问题的答案。
答案 1 :(得分: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。
答案 2 :(得分:-1)
添加灰色叠加标签,大小等于主窗口。当然,不要忘记setEnabled(false)
。