在启动 Qt 应用程序时,有没有办法显示灰色的主窗口,并禁用所有小部件(按钮/复选框/等) - 无法单击。一旦用户打开文件或执行某些初始化过程,主窗口就会变为非灰色并启用所有小部件。这在 Qt 中可能吗?
QWidget::setEnabled(false)
即可禁用窗口/小部件,然后调用 QWidget::setEnabled(true)
来启用它。
顺便说一句,Qt 文档非常全面。只需在那里搜索,您应该可以轻松找到许多问题的答案。
在我的软件中,在创建新的小部件之前,我使用以下命令禁用了父窗口中的所有按钮:
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。
添加灰色覆盖标签,这些标签的大小等于您的主窗口。当然,别忘了
setEnabled(false)
。