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

时间:2012-11-28 10:46:31

标签: c++ qt qt4

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

以下是我使用过的一些代码,

mainwindow.h

 private:
  Form *myform;

public slots:
 void myformshow();

mainwindow.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();
}

form.h

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

public:
 Form(QWidget *parent);

public slots:
void  command();
};

#endif // FORM_H

此处表单表示,我创建了新窗口为forms.h,其类为Form

1 个答案:

答案 0 :(得分:3)

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

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

exec()

(如果您在From类代码中的其他位置引用了QWidget,也可以更改它们。)

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

class Form : public QDialog, private Ui::Form