2

我创建了一个主窗口和新窗口。当按下主窗口上的按钮时,将出现新窗口。没关系。但我需要新窗口作为对话框出现。这意味着打开对话框时,主窗口将在对话框关闭之前不起作用。并且当打开一个对话框时,任务栏中不会出现一个新的 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

4

1 回答 1

3

使第二个窗口继承自 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();
}
于 2012-11-28T11:23:10.997 回答