2013-11-21 14 views
2

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

+0

我想OP是想知道如何抓住所有的动作并且立即禁用它们,而不是单独禁用它们。 –

回答

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)

相关问题