我创建了一个主窗口和一个新窗口。当在主窗口上按下按钮时,将出现新窗口。没关系。但我需要新窗口作为对话框。这意味着打开一个对话框,主窗口将不起作用,直到对话框关闭。并且当打开一个对话框时,新的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
答案 0 :(得分:3)
使第二个窗口继承自QDialog(不是绝对必要的,但会为您提供正确的平台特定行为,如居中和各种窗口标志),将主窗口设置为其父窗口,并使用其{{1}运行它功能。
首先,将Form类更改为继承自QDialog:
exec()
(如果您在From类代码中的其他位置引用了QWidget,也可以更改它们。)
然后,在你的mainWin :: myformshow()函数中,执行:
class Form : public QDialog, private Ui::Form