如何禁用Qt中打开的子窗口上的父窗口?

如何禁用Qt中打开的子窗口上的父窗口?,qt,Qt,我想禁止在主窗口中进行任何操作,包括关闭它。而开放的孩子 我尝试: // child window Settings::Settings(QWidget *parent) : QWidget(parent), ui(new Ui::Settings) { ui->setupUi(this); ((QWidget*)parent)->setEnabled(false); // or parent->setEnabled(false); ...

我想禁止在主窗口中进行任何操作,包括关闭它。而开放的孩子

我尝试:

// 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()上出现分段错误

我尝试从设置构造函数/析构函数发送信号 至
MainClass
slot

void MainClass::Enable(bool enable)
{
  qDebug() << "detect signal enable"; // 
  this->setEnable(enable);
}
void MainClass::Enable(bool Enable)
{
qDebug()设置启用(启用);
}
但信号没有发出

当然,我将
设置
连接到
main类
)。
信号发射在
设置
的任何其他功能中工作。对于子窗口,最好从()继承,因为第一个是专门为对话框设计的。从Qt文档:

QDialog
类是对话框窗口的基类


你需要的方法是。它会将您的对话框作为一个窗口打开,该窗口将阻止其他应用程序窗口的输入,直到其关闭。

对于子窗口,最好从(而不是)继承,因为第一个窗口是专为对话框设计的。从Qt文档:

QDialog
类是对话框窗口的基类


你需要的方法是。它将以对话框的形式打开您的对话框,该对话框将阻止其他应用程序窗口的输入,直到其关闭。

“我想禁止主窗口中的任何操作,包括其关闭”-通常会将设置设为(模式)QDialog。但是,如果父对象指向有效对象,我看不出这将如何崩溃。(在调试器中运行它)“我想禁止主窗口中的任何操作,包括其关闭”-通常会为此设置(模式)QDialog。但如果父对象指向有效对象,我看不出这将如何崩溃。(在调试器中运行它)@我们如何从QDialog模式窗口访问父类小部件?@JohnDoe我们如何从QDialog模式窗口访问父类小部件?