gpt4 book ai didi

c++ - 作为对话框打开新窗口(Qt4)

转载 作者:搜寻专家 更新时间:2023-10-31 01:51:40 25 4
gpt4 key购买 nike

我创建了一个主窗口和一个新窗口。当在主窗口上按下按钮时,将出现新窗口。没关系。但我需要新窗口作为对话框出现。这意味着打开对话框时主窗口将无法运行,直到对话框关闭。并且当打开对话框时,新的 tsb 将不会出现在任务栏中。如何做到这一点。

这是我使用的一些代码,

主窗口.h

 private:
Form *myform;

public slots:
void myformshow();

主窗口.cpp

mainWin::mainWin(QWidget *parent)
{
setupUi(this);
connect(pushButton,SIGNAL(clicked()),this,SLOT(myformshow()));
}

void mainWin::myformshow(){
myform= new Form(); //make sure to delete newform someware.
myform->show();
}

表格.h

 class Form : public QWidget, private Ui::Form
{
Q_OBJECT

public:
Form(QWidget *parent);

public slots:
void command();
};

#endif // FORM_H

这里 Form 的意思是,我将新窗口创建为 forms.h 并且它的类是 Form

最佳答案

使第二个窗口继承自 QDialog(并非绝对必要,但会为您提供正确的平台特定行为,如居中和各种窗口标志),将主窗口设置为其父窗口,并使用其 exec 运行它() 函数。

首先,将您的 Form 类更改为继承自 QDialog:

class Form : public QDialog, private Ui::Form

(如果您在 From 类代码的其他地方引用了 QWidget,也请更改它们。)

然后,在您的 mainWin::myformshow() 函数中,执行:

void mainWin::myformshow()
{
myform = new Form; //make sure to delete newform someware.
myform->exec();
}

关于c++ - 作为对话框打开新窗口(Qt4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13603226/

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