Qt 变灰并禁用主窗口中的所有操作

问题描述 投票:0回答:3

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

windows-7 qt4
3个回答
9
投票

是的。只需调用

QWidget::setEnabled(false)
即可禁用窗口/小部件,然后调用
QWidget::setEnabled(true)
来启用它。

顺便说一句,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)

© www.soinside.com 2019 - 2024. All rights reserved.