Qt灰显并禁用MainWindow中的所有操作

时间:2013-11-21 17:12:15

标签: windows-7 qt4

在启动Qt应用程序时说,有没有办法显示灰色的主窗口,并禁用所有小部件(按钮/复选框等) - 无法单击。用户打开文件或执行某些初始化过程后,主窗口将变为非灰色并启用所有窗口小部件。这在Qt中是否可能?

3 个答案:

答案 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)