C++ 以对话框形式打开新窗口(Qt4)
我创建了一个主窗口和一个新窗口。当按下主窗口上的按钮时,将出现新窗口。没关系。但是我需要一个新窗口作为对话框出现。这意味着当对话框打开时,主窗口将不起作用,直到对话框关闭。当一个对话框打开时,一个新的tsb将不会出现在任务栏上。如何做到这一点 这是我使用的一些代码 主窗口C++ 以对话框形式打开新窗口(Qt4),c++,qt,qt4,C++,Qt,Qt4,我创建了一个主窗口和一个新窗口。当按下主窗口上的按钮时,将出现新窗口。没关系。但是我需要一个新窗口作为对话框出现。这意味着当对话框打开时,主窗口将不起作用,直到对话框关闭。当一个对话框打开时,一个新的tsb将不会出现在任务栏上。如何做到这一点 这是我使用的一些代码 主窗口 private: Form *myform; public slots: void myformshow(); mainwindow.cpp mainWin::mainWin(QWidget *parent) {
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();
}
表格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()运行它
功能
首先,将表单类更改为从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();
}
请看,我也添加了我的form.h文件源。现在,请告诉我如何添加跳线。@LakshanPerera您忘记了#include
@LakshanPerera:您的构造函数需要QWidget
参数。要么提供参数,即myForm=newform(此)代码>,或将参数设置为可选,形式(QWidget*parent=NULL)代码> @ LakshanPerera:从你问的问题来看,你可能真的想从某种程度上获取一个C++底漆。我并不是说这句话是卑鄙的,只是说使用Qt有效地假设了一定程度的熟悉C++,而你问的问题是很基本的概念。