我想在主窗口禁止任何操作,包括关闭。而开放的孩子
我试试:
// child window
Settings::Settings(QWidget *parent) :
QWidget(parent),
ui(new Ui::Settings)
{
ui->setupUi(this);
((QWidget*)parent)->setEnabled(false); // or parent->setEnabled(false);
...
在Settings->show();
我尝试从Settings构造函数/析构函数发送信号
到MainClass
广告位
void MainClass::Enable(bool enable)
{
qDebug() << "detect signal enable"; //
this->setEnable(enable);
}
但未发送信号。
当然我将Settings
连接到MainClass
))。
信号发射在Settings
的任何其他功能中起作用。
答案 0 :(得分:3)
对于子窗口,最好继承QDialog
(不 QWidget
),因为第一个是专为对话设计的。来自Qt docs:
function check(answer){ var contain=names.indexof(answer); if(contain==-1){ alert("Username Ok!"); } else { alert("This username already exists"); } };
类是对话框窗口的基类。
您需要的方法是QDialog::exec()
。它会以modal window打开您的对话框,这将阻止其他应用程序窗口的输入,直到它被关闭。