繁体   English   中英

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

[英]open new window as a dialog (Qt4)

我创建了一个主窗口和新窗口。 当按下主窗口上的按钮时,将出现新窗口。 没关系。 但我需要新窗口作为对话框。 这意味着打开对话框后,主窗口将无法运行,直到对话框关闭。 并且当打开对话框时,新的 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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM