QT界面的建立原理
扫描二维码
随时随地手机看文章
QT是什么?
Qt 是一套应用程序开发类库,但与 MFC 不同,Qt 是跨平台的开发类库。Qt 支持 PC 和服务器的平台,包括 Windows、Linux、macOS 等,还支持移动和嵌入式操作系统,如 iOS、Embedded Linux、Android、WinRT 等。跨平台意味着只需编写一次程序,在不同平台上无需改动或只需少许改动后再编译,就可以形成在不同平台上运行的版本。这种跨平台功能为开发者提供了极大的便利。
QT界面的建立原理
1. 在函数中setupUI,建立槽的连接;
2. 新建UI过程
(1) 每一个控件都是一个独立的类对象;
(2) 独立的控件都是window窗口,设置parent = 0:
(3) 当parent的值为其他控件的地址,则为子控件;
(4) 子控件不需要单独显示show函数,如果父控件显示,子控件自动显示;
(5) Resize()大小调整
(6) Move()移动位置
(7) Setfront()设置字体;
(8) Setwindowicon()设置图标;在此之前需要先定义qicon i(路径名称)
3. 理解main函数中的return a.exec():主运行循环
(1) 防止主程序结束,重新开始循环执行主程序;
(2) 开启事件队列,并且进行事件分发;
4. 帮助手册解读
(1) 在类的属性中,获取属性函数
① 如果属性是Bool类型,则获取该属性的函数名是前面加上is,部分直接以属性名字命名;
② 如果属性不是Bool类型,则该属性函数名的获取名即为属性名本身;
(2)设置属性加上为set;
5. Widget表示空白窗口,window表示有标题栏的窗口,dialog表示对话框;
6. 函数的自动调用机制
(1) 当操作系统接收到一种信号后,如果QT程序正在运行状态,则QT会接收到这个信号,并且自动调用控件类中已经定义好的函数,
7. eventFilter函数
(1) 定义eventFilter函数(2) 给控件安装eventFilter函数安装;
8. 事件的传递性
(1) 某一种控件除了在某一个控件上发生外,还会传递给父控件;
(2) Eventfileter函数如果返回true,则不会传递,默认return false;
(3) Event->accept()作用相当于返回false,适用于所有event;(4) Event->ignal作用相当于返回true;
9. 实现多个控件的事件触发
(1) 在定义中用qApp来指定所有的控件;
(2) 用notify实现事件的分发,如果需要重新定义notify函数,需要在notify'中returned父类的函数;
10. Postevent函数实现异步事件处理
11. ui中固定界面的大小方法
(1) 直接将maxsize和minsize设置成一致;
(2) 在构造函数中,使用setfixsize( this->width, this->height)来固定大小;