Qt多窗口来回切换实战
学习Qt有一段时间了,今天算是空闲,总结一下之前过的多窗口切换的实现过程。因为自己在学这个的时候在网上查找过一些资料,感觉都没有完全把过程讲清楚,对于初学者来说是一种痛苦(老是缺这缺那得,估计都是大神给的,哈哈!)。今贴出自己之前完成过的一个多窗口切换的实例,希望能给初学Qt的同学们一些启发,少走一些弯路。共勉!
实例实现的功能:实现多个窗口之间的切换。一个主窗口(Widget)两个对话框(Dialog),Dialog1和Dialog2。当点击主窗口的按键时,主窗口自动影藏,同时弹出Dialog1对话框。当点击Dialog1中的按键时,弹出Dialog2对话框。当关闭dialog1对话框时,主窗口又显示出来了。
具体实现过程如下:
1、新建一个主工程MultiDialog,类名为Widget,基类为QWidget。然后一直下一步就行。
1.2、建立第一个对话框
1.2.1 新建->Qt->Qt Designer Form Class->Dialog without Buttons->Dialog1
1.3 在主窗口中添加部件
选中界面文件,双击widget.ui,在主窗口中添加一个label和一个个PushButton,并分别修改对象名称和显示内容:
1.4 添加槽函数,实现主窗口与Dialog1的连接。
这时在头文件widget.h中自动添加槽的声明:在界面文件中双击widget.ui—>选中PushButton右击—>go to slot—>clicked(),这是自动添加了槽函数的声明,在widget.cpp中填写槽函数的实现:
添加了#include ”dialog1“ ,槽函数的定义,以及定义了dialog1对象:
在widget.cpp中填充槽函数的实现:
1.5 点击运行可以得到如下结果,当点击PushButton时,进入Dialog1对话框:
2、建立第二个对话框
2.1 新建->Qt->Qt Designer Form Class->Dialog without Buttons->Dialog2
2.2 双击界面文件中的dialog2.ui,在对话框中加入一个label,并修改对象名称和显示内容
2.3 添加槽函数,建立Dialog1与Dialog2的连接
在dialog1.h中自动添加槽的声明:双击dialog1.ui—>右击PushButton—>go to slot—>clicked()。这时自动添加了槽函数的声明,并在dialog1.cpp中填充槽函数的实现。
然后在dialog1.cpp中,填充槽函数的实现:
这时点击运行就能出现如下的结果:
点击dialog1中PushButton时会进入Dialog2对话框:
其中的main函数为:
3. 实现点击dialog1对话框中的exit按钮回跳到主窗口显示。
在dialog1.ui中添加一个Label,修改对象名称和显示内容:
在widget.cpp中添加的代码如下(可以对比上文中的widget.cpp):
在dialog1.cpp中添加连接eixt与dialog2的函数:
修改过后,当我们点击dialog1中的exit时,便可以跳转到主窗口显示咯。我们便可以实现各个窗口之间的来回切换了。
由于Dialog2没有实现其他的功能,因此dialog2.h与dialog2.cpp并未做修改。
到目前为止,实现多窗口切换的实例已经完成了。通过这个实例启发,我们可以实现更多的功能,比如实现某个用遥控器控制的菜单界面的UI界面设计。这个实例只是抛砖引玉,更高级一些的界面设计还得我们发散思维,多去尝试。
学习Qt有一段时间了,今天算是空闲,总结一下之前过的多窗口切换的实现过程。因为自己在学这个的时候在网上查找过一些资料,感觉都没有完全把过程讲清楚,对于初学者来说是一种痛苦(老是缺这缺那得,估计都是大神给的,哈哈!)。今贴出自己之前完成过的一个多窗口切换的实例,希望能给初学Qt的同学们一些启发,少走一些弯路。共勉!
实例实现的功能:实现多个窗口之间的切换。一个主窗口(Widget)两个对话框(Dialog),Dialog1和Dialog2。当点击主窗口的按键时,主窗口自动影藏,同时弹出Dialog1对话框。当点击Dialog1中的按键时,弹出Dialog2对话框。当关闭dialog1对话框时,主窗口又显示出来了。
具体实现过程如下:
1、新建一个主工程MultiDialog,类名为Widget,基类为QWidget。然后一直下一步就行。
1.2、建立第一个对话框
1.2.1 新建->Qt->Qt Designer Form Class->Dialog without Buttons->Dialog1
1.3 在主窗口中添加部件
选中界面文件,双击widget.ui,在主窗口中添加一个label和一个个PushButton,并分别修改对象名称和显示内容:
1.4 添加槽函数,实现主窗口与Dialog1的连接。
这时在头文件widget.h中自动添加槽的声明:在界面文件中双击widget.ui—>选中PushButton右击—>go to slot—>clicked(),这是自动添加了槽函数的声明,在widget.cpp中填写槽函数的实现:
添加了#include ”dialog1“ ,槽函数的定义,以及定义了dialog1对象:
在widget.cpp中填充槽函数的实现:
1.5 点击运行可以得到如下结果,当点击PushButton时,进入Dialog1对话框:
2、建立第二个对话框
2.1 新建->Qt->Qt Designer Form Class->Dialog without Buttons->Dialog2
2.2 双击界面文件中的dialog2.ui,在对话框中加入一个label,并修改对象名称和显示内容
2.3 添加槽函数,建立Dialog1与Dialog2的连接
在dialog1.h中自动添加槽的声明:双击dialog1.ui—>右击PushButton—>go to slot—>clicked()。这时自动添加了槽函数的声明,并在dialog1.cpp中填充槽函数的实现。
然后在dialog1.cpp中,填充槽函数的实现:
这时点击运行就能出现如下的结果:
点击dialog1中PushButton时会进入Dialog2对话框:
其中的main函数为:
3. 实现点击dialog1对话框中的exit按钮回跳到主窗口显示。
在dialog1.ui中添加一个Label,修改对象名称和显示内容:
在widget.cpp中添加的代码如下(可以对比上文中的widget.cpp):
在dialog1.cpp中添加连接eixt与dialog2的函数:
修改过后,当我们点击dialog1中的exit时,便可以跳转到主窗口显示咯。我们便可以实现各个窗口之间的来回切换了。
由于Dialog2没有实现其他的功能,因此dialog2.h与dialog2.cpp并未做修改。
到目前为止,实现多窗口切换的实例已经完成了。通过这个实例启发,我们可以实现更多的功能,比如实现某个用遥控器控制的菜单界面的UI界面设计。这个实例只是抛砖引玉,更高级一些的界面设计还得我们发散思维,多去尝试。