qt - 允许用户只按一个按钮并打开一个对话框

时间:2014-09-26 10:37:53

标签: qt qdialog

我正在使用QT,我已经使用一些按钮和控件完成了一个全屏应用程序。 有时当弹出错误时会显示一个对话框并保持打开状态(保持在最顶层)。

我想在应用程序界面中有一个按钮,当打开此对话框时也可以按下该按钮,但所有其他控件/按钮都不可用。

我想到的是一个透明的自定义小部件,在应用程序上有一个特殊的形式而没有覆盖“特殊”按钮,但我真的不知道它是否如此简单。

1 个答案:

答案 0 :(得分:1)

创建一个特殊按钮并将对象名称设置为此按钮:

pushButton->setObjectName("special");

找到所有按钮:

QList<QPushButton*> allButtons = this->findChildren<QPushButton*>();
for(int i = 0; i < allButtons.size(); ++i)
{
    if(allButtons.at(i)->objectName() != "special")
        allButtons.at(i)->setEnable(false);
}
allButtons.clear();

现在所有非特殊按钮都被禁用,启用 - 做同样的事情。