QT学习 第一章:基本对话框--利用Qt Designer设计多个UI界面

QT学习 第一章:基本对话框--利用Qt Designer设计多个UI界面

效果截图:

创建上文件夹Designers,使用Designer设计三个UI界面:

First.ui

Second.ui

Third.ui

下面三个代码文件的源码:

<textarea cols="50" rows="15" name="code" class="cpp">/** Object: Designers ** Desc: Designers 在程序中使用多个UI界面 ** File: main.cpp ** Compile:qmake-qt4 -project;qmake-qt4;make; ** Author: LiXiujie www.xiujie.cn ** Date: 2011-05-20 ** Note: 编译说明: ** qmake-qt4 -prject 自动生成程序的项目文件(*.pro); ** 打开工程文件加入 FORMS += / Second.ui / First.ui / Third.ui ** qmake-qt4 用于生成程序的Makefile文件; ** make 编译 Makefile 文件得到可执行文件。 ** */ #include &lt;QApplication&gt; // 所有QT图形化应用程序必须包含此文件,它包含了QT图形化应用程序的各种资源、基本设置、控制流及事件处理等。 #include &lt;QDialog&gt; #include &quot;MyWidget.h&quot; // 自定义类 int main(int argc, char *argv[]){ QApplication app(argc, argv); MyWidget *dialog = new MyWidget; dialog-&gt;show(); return app.exec(); } </textarea>

<textarea cols="50" rows="15" name="code" class="cpp">/** Object: Designers ** Desc: Designers 在程序中使用多个UI界面 ** File: MyWidget.h ** Class: MyWidget ** Compile:qmake-qt4 -project;qmake-qt4;make; ** Author: LiXiujie www.xiujie.cn ** Date: 2011-05-20 ** Note: 编译说明: ** qmake-qt4 -prject 自动生成程序的项目文件(*.pro); ** qmake-qt4 用于生成程序的Makefile文件; ** make 编译 Makefile 文件得到可执行文件。 ** */ #ifndef MYWIDGET_H #define MYWIDGET_H #include &lt;QWidget&gt; #include &quot;ui_First.h&quot; #include &quot;ui_Second.h&quot; #include &quot;ui_Third.h&quot; class MyWidget : public QWidget { Q_OBJECT public: explicit MyWidget(QWidget *parent = 0); signals: public slots: void slotChild(); private: Ui::First m_firstUI; Ui::Second m_secondUI; Ui::Third m_thirdUI; }; #endif // MYWIDGET_H </textarea>

<textarea cols="50" rows="15" name="code" class="cpp">/** Object: Designers ** Desc: Designers 在程序中使用多个UI界面 ** File: MyWidget.cpp ** Class: MyWidget ** Compile:qmake-qt4 -project;qmake-qt4;make; ** Author: LiXiujie www.xiujie.cn ** Date: 2011-05-20 ** Note: 编译说明: ** qmake-qt4 -prject 自动生成程序的项目文件(*.pro); ** qmake-qt4 用于生成程序的Makefile文件; ** make 编译 Makefile 文件得到可执行文件。 ** */ #include &quot;MyWidget.h&quot; MyWidget::MyWidget(QWidget *parent) : QWidget(parent){ QTabWidget *pTabWidget = new QTabWidget(this); // TabWidget 控件, 选项卡控件 QWidget *pWidget_first = new QWidget; m_firstUI.setupUi((QDialog*)pWidget_first); QWidget *pWidget_second = new QWidget; m_secondUI.setupUi((QDialog*)pWidget_second); pTabWidget-&gt;addTab(pWidget_first, &quot;First Tab&quot;); // 添加一个选项卡 pTabWidget-&gt;addTab(pWidget_second, &quot;Second Tab&quot;); pTabWidget-&gt;resize(300, 300); // 设置控件宽长 /* 绑定UI界面中按钮点击事件处理函数 */ connect(m_firstUI.pushButton_Child, SIGNAL(clicked()), this, SLOT(slotChild())); connect(m_secondUI.pushButton_Close, SIGNAL(clicked()), this, SLOT(close())); } void MyWidget::slotChild(){ QDialog *pDialog_third = new QDialog; m_thirdUI.setupUi(pDialog_third); connect(m_thirdUI.pushButton_Close, SIGNAL(clicked()), pDialog_third, SLOT(close())); pDialog_third-&gt;exec(); // 显示对话框 } </textarea>

下面三个UI文件源码:

First.ui

<textarea cols="50" rows="15" name="code" class="cpp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;ui version=&quot;4.0&quot;&gt; &lt;class&gt;First&lt;/class&gt; &lt;widget class=&quot;QDialog&quot; name=&quot;First&quot;&gt; &lt;property name=&quot;windowModality&quot;&gt; &lt;enum&gt;Qt::NonModal&lt;/enum&gt; &lt;/property&gt; &lt;property name=&quot;geometry&quot;&gt; &lt;rect&gt; &lt;x&gt;0&lt;/x&gt; &lt;y&gt;0&lt;/y&gt; &lt;width&gt;300&lt;/width&gt; &lt;height&gt;250&lt;/height&gt; &lt;/rect&gt; &lt;/property&gt; &lt;property name=&quot;windowTitle&quot;&gt; &lt;string&gt;Dialog&lt;/string&gt; &lt;/property&gt; &lt;widget class=&quot;QLabel&quot; name=&quot;label&quot;&gt; &lt;property name=&quot;geometry&quot;&gt; &lt;rect&gt; &lt;x&gt;100&lt;/x&gt; &lt;y&gt;100&lt;/y&gt; &lt;width&gt;100&lt;/width&gt; &lt;height&gt;20&lt;/height&gt; &lt;/rect&gt; &lt;/property&gt; &lt;property name=&quot;text&quot;&gt; &lt;string&gt;这是第一个 UI!!&lt;/string&gt; &lt;/property&gt; &lt;/widget&gt; &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton_Child&quot;&gt; &lt;property name=&quot;geometry&quot;&gt; &lt;rect&gt; &lt;x&gt;200&lt;/x&gt; &lt;y&gt;200&lt;/y&gt; &lt;width&gt;80&lt;/width&gt; &lt;height&gt;25&lt;/height&gt; &lt;/rect&gt; &lt;/property&gt; &lt;property name=&quot;text&quot;&gt; &lt;string&gt;子窗口&lt;/string&gt; &lt;/property&gt; &lt;/widget&gt; &lt;/widget&gt; &lt;resources/&gt; &lt;connections/&gt; &lt;/ui&gt; </textarea>

Second.ui

<textarea cols="50" rows="15" name="code" class="cpp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;ui version=&quot;4.0&quot;&gt; &lt;class&gt;Second&lt;/class&gt; &lt;widget class=&quot;QDialog&quot; name=&quot;Second&quot;&gt; &lt;property name=&quot;geometry&quot;&gt; &lt;rect&gt; &lt;x&gt;0&lt;/x&gt; &lt;y&gt;0&lt;/y&gt; &lt;width&gt;300&lt;/width&gt; &lt;height&gt;250&lt;/height&gt; &lt;/rect&gt; &lt;/property&gt; &lt;property name=&quot;windowTitle&quot;&gt; &lt;string&gt;Second&lt;/string&gt; &lt;/property&gt; &lt;widget class=&quot;QLabel&quot; name=&quot;label&quot;&gt; &lt;property name=&quot;geometry&quot;&gt; &lt;rect&gt; &lt;x&gt;100&lt;/x&gt; &lt;y&gt;100&lt;/y&gt; &lt;width&gt;100&lt;/width&gt; &lt;height&gt;20&lt;/height&gt; &lt;/rect&gt; &lt;/property&gt; &lt;property name=&quot;text&quot;&gt; &lt;string&gt;这是第二个 UI!!&lt;/string&gt; &lt;/property&gt; &lt;/widget&gt; &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton_Close&quot;&gt; &lt;property name=&quot;geometry&quot;&gt; &lt;rect&gt; &lt;x&gt;200&lt;/x&gt; &lt;y&gt;200&lt;/y&gt; &lt;width&gt;80&lt;/width&gt; &lt;height&gt;25&lt;/height&gt; &lt;/rect&gt; &lt;/property&gt; &lt;property name=&quot;text&quot;&gt; &lt;string&gt;关闭&lt;/string&gt; &lt;/property&gt; &lt;/widget&gt; &lt;/widget&gt; &lt;resources/&gt; &lt;connections/&gt; &lt;/ui&gt; </textarea>

Third.ui

<textarea cols="50" rows="15" name="code" class="xhtml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;ui version=&quot;4.0&quot;&gt; &lt;class&gt;Third&lt;/class&gt; &lt;widget class=&quot;QDialog&quot; name=&quot;Third&quot;&gt; &lt;property name=&quot;geometry&quot;&gt; &lt;rect&gt; &lt;x&gt;0&lt;/x&gt; &lt;y&gt;0&lt;/y&gt; &lt;width&gt;300&lt;/width&gt; &lt;height&gt;250&lt;/height&gt; &lt;/rect&gt; &lt;/property&gt; &lt;property name=&quot;windowTitle&quot;&gt; &lt;string&gt;Third Dialog&lt;/string&gt; &lt;/property&gt; &lt;widget class=&quot;QLabel&quot; name=&quot;label&quot;&gt; &lt;property name=&quot;geometry&quot;&gt; &lt;rect&gt; &lt;x&gt;100&lt;/x&gt; &lt;y&gt;100&lt;/y&gt; &lt;width&gt;100&lt;/width&gt; &lt;height&gt;20&lt;/height&gt; &lt;/rect&gt; &lt;/property&gt; &lt;property name=&quot;text&quot;&gt; &lt;string&gt;这是第三个 UI!!&lt;/string&gt; &lt;/property&gt; &lt;/widget&gt; &lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton_Close&quot;&gt; &lt;property name=&quot;geometry&quot;&gt; &lt;rect&gt; &lt;x&gt;200&lt;/x&gt; &lt;y&gt;200&lt;/y&gt; &lt;width&gt;80&lt;/width&gt; &lt;height&gt;25&lt;/height&gt; &lt;/rect&gt; &lt;/property&gt; &lt;property name=&quot;text&quot;&gt; &lt;string&gt;关闭&lt;/string&gt; &lt;/property&gt; &lt;/widget&gt; &lt;/widget&gt; &lt;resources/&gt; &lt;connections/&gt; &lt;/ui&gt; </textarea>

 

你可能感兴趣的:(QT学习 第一章:基本对话框--利用Qt Designer设计多个UI界面)