我使用Qt Designer在我的MainWindow
旁边创建了第二个表单QDialog
。
我的问题是如何通过单击MainWindow
中的按钮来显示此对话框。
如果我使用以下代码,它会创建一个newDialog
,但我想使用我在Qt Designer中创建的表单。我怎么能嵌入它?
QDialog *myDialog = new QDialog;
myDialog->show();
答案 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的所有过程,这对于创建对话框和所需的所有小部件非常有帮助。