在QtDesigner中显示QDialog创建

时间:2014-08-16 18:22:10

标签: c++ json qt

我使用Qt Designer在我的MainWindow旁边创建了第二个表单QDialog。 我的问题是如何通过单击MainWindow中的按钮来显示此对话框。 如果我使用以下代码,它会创建一个newDialog,但我想使用我在Qt Designer中创建的表单。我怎么能嵌入它?

QDialog *myDialog = new QDialog;
myDialog->show();

1 个答案:

答案 0 :(得分:1)

首先,您需要在QtDesigner中创建一个新对话框。在该对话框中添加所需的所有内容,然后保存所有更改。您将创建的文件是.ui。将此文件添加到您的项目中。

在此之后创建一个头文件和cpp文件,其中包含您想要的名称(如果您使用与de ui文件相同的名称,那将会更好)。然后在.h:

namespace Ui {
class QDialogExample;
}

class QDialogExample : public QDialog
{
    Q_OBJECT

public:
    explicit QDialogExample(QWidget *parent = 0);
    ~QDialogExample();

private:
    Ui::QDialogExample *ui; // This will be the acces to the widgets defined in .ui
};

然后在.cpp文件中:

QDialogExample::QDialogExample(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::QDialogExample)
{
    ui->setupUi(this); // This will init all the widgets
}

然后在QAction的插槽或您的自定义按钮中添加对

的调用
QDialogExample pDialogExample = new pDialogExample( this );
pDialogExample->show();

无论如何,要了解它是如何工作的,建议使用QtCreator的所有过程,这对于创建对话框和所需的所有小部件非常有帮助。