gpt4 book ai didi

qt - 如何在 Qt 中禁用打开子窗口的父窗口?

转载 作者:行者123 更新时间:2023-12-05 01:46:03 25 4
gpt4 key购买 nike

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

我尝试:

// 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 插槽

void MainClass::Enable(bool enable)
{
qDebug() << "detect signal enable"; //
this->setEnable(enable);
}

但是没有发送信号。

当然,我将 Settings 连接到 MainClass))。信号发射适用于 Settings 的任何其他功能。

最佳答案

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

The QDialog class is the base class of dialog windows.

你需要的方法是QDialog::exec() .它以 modal window 形式打开您的对话框这将阻止其他应用程序窗口的输入,直到它关闭。

关于qt - 如何在 Qt 中禁用打开子窗口的父窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37903842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com