搭建好了界面部件,只是编程的开始,如何在应用程序中操控这些部件才是更重要。这篇博文将讲解如何去操作界面上的widgets部件。
首先,我们要知道窗体的使用有两种方式,编译时和运行时,这里我主要说明在编译时的使用。
一、编译时用户界面处理
我们使用QT设计师编辑好界面后,回到VS界面进行编译,就会生成对应界面的“ui_***.h”文件,它包含了窗体的用户界面对象和一些函数,以下是类内容的分析。。
然后我们在QT设计师中添加两个按钮和一个菜单项,然后编译观察更改后的ui_****.h文件内容的变化
编译后的ui_***.h文件,可以发现我们添加的部件的内容。
二、使用界面类(QT5Demo)
编译好ui文件后,就可以在应用程序中使用ui部件(widget)了,ui部件的使用主要由三种方法:
1.直接应用
2.单一继承
3.多继承
1.直接应用法
创建一个widget或者mainwindow作为ui部件的载体,然后将用户界面安装在其上。
直接使用方法的缺点是无法使用自定义槽函数,这就造成ui各部件之间的交互困难。为了避免这种情况,我们需要使用单一继承法。
2.单一继承法
QT自动生成的代码就是单一继承法,把ui作为类的私有数据成员,然后在类中使用ui.×××来调用ui中的部件,代码就不贴了。
ui还可以声明为指针数据成员,相对与直接声明为数据成员有一定的优点,详细参考帮助手册。
3.多继承法
多继承法就是使某一类直接继承UI类和QWidget/QMainWindow类,使ui的部件在类的作用域中可以直接使用,不用再使用ui前缀。
感觉这种方法与C#中用partial class 来组合MainForm.Designer.cs与MainForm.cs有点类似,Qt用信号与槽代替了C#中的回调,将两者比较一下还是有点收获的。
三、信号与槽的使用
1.使用connect()函数,连接信号与槽,这个介绍已经很多了,这里就不介绍了。
2.自动连接。
采用以下语法自动连接,适用于部件的所有信号:
例如,槽声明
槽定义(补充:Qt5.7解决中文显示问题):
“退出”按钮——用Qt设计师拖拽的方式连接信号和槽:
运行效果:
关于Qt在VS2015中的使用,先解决这儿多吧。