当前位置: 首页 > news >正文

QT系统学习篇(2)- Qt跨平台GUI原理机制

一、Qt工程管理

新建项目:
在这里插入图片描述

我们程序员新建项目对话框所有5类项目模板
Application: Qt的应用程序,包含Qt Quick和普通窗口程序。
Library: 它可以创建动态库、静态库、Qt Creator自身插件、Qt Quick扩展插件。
其他项目: 创建单元测试项目、子目录项目、Qt4设计师自定义控件等。
Non-Qt Project: 可以创建纯C语言或纯C++项目。
import Project: 从版本控制系统来管理软件项目,导入一些我们使用过的项目。
Qt应用程序拥有4个子模板
1、Qt Widgets Application:普通窗口模板,传统基于剖析的窗体界面应用程序。
2、Qt Console Application:控制台应用程序,因为Qt主要用于图形界面设计。
3、Qt Quick(后面的章节我们再详细讲解)

在这里插入图片描述
QMainWindow:基于主窗口类的应用程序,一般主要用于比较复杂的程序,除中央客户界面,还可以包括菜单栏、状态状、工具栏及多个停靠的工具对话框等等。
QWidget:最简单最基本的窗口程序,它里面可以容纳很多个控件实现程序等功能。
QDialog:基于对话框,对话框一般主要用于弹窗,也可以用于主界面显示.
QDialog和QMainWindow继承于QWidget

在这里插入图片描述

Qt Creator以工程项目的方式对源代码进行管理,一个Qt工程当中包含不同类型的文件,具体如下:

  • a: .pro项目描述文件
  • b: .h头文件
  • c: .cpp源程序文件
  • d: .ui界面描述文件
  • e: .pro.user用户描述文件
  • f: 资源文件(音频、图片等)
    在这里插入图片描述

二、 项目QMessageBox技巧详解

MessageBox的5个参数

QMessageBox::information(NULL,"information","是否退出系统",QMessageBox::No|QMessageBox::Yes,QMessageBox::No);

第一个参数:是父控件指针
第二个参数:标题名称
第三个参数:信息提示框内容
第四个参数:信息提示框里面有多少个按钮,一般情况下默认为OK
第五个参数:指定按下Enter键时使用的按钮

1、QMessageBox 5种用法

information 消息
critical 错误
warning 警告
question 提问
about 默认消息

在这里插入图片描述

QMessageBox::information(NULL,"information","是否退出系统",QMessageBox::No|QMessageBox::Yes,QMessageBox::No);
QMessageBox::critical(NULL,"critical","出错",QMessageBox::No|QMessageBox::Yes,QMessageBox::No);
QMessageBox::warning(NULL,"warning","警告,删除文件有危害",QMessageBox::No|QMessageBox::Yes,QMessageBox::No);
QMessageBox::question(NULL,"question","您的年龄是?",QMessageBox::No|QMessageBox::Yes,QMessageBox::No);
QMessageBox::about(NULL,"about","默认消息提示框");  //默认用法

2、判断QMessageBox 消息框里用户选择了哪个按钮:

void Widget::on_pushButton_iconChose_clicked()
{QMessageBox messageBox(QMessageBox::NoIcon,"登录","是否登录系统",QMessageBox::No|QMessageBox::Yes,NULL);int iResult=messageBox.exec();switch (iResult) {case QMessageBox::No:QMessageBox::about(NULL,"提示","你选择了no按钮");break;case QMessageBox::Yes:QMessageBox::about(NULL,"提示","你选择了yes按钮");default:break;}
}

在这里插入图片描述

三、GUI运行模式及消息处理模型

1、GUI运行模式

主要是理解main函数里干了什么
mian()主函数中,定义主窗口,再到创建主窗口,再创建主窗口中各种元素,然后显示主窗口,最后进入消息循环

2、消息处理模型

main中创建了一个QApplication 对象a,调用exec()后,整个程序进入事件循环,由QApplication 对象a监控应用程序中所有控件所产生的事件。由exec执行的事件循环监听整个应用程序中所有控件的事件,当某个控件产生相关事件之后,QApplication 对象就会执行 notify 函数,向此控件发送通知,收到事件通知的控件通过 过滤 以及 分发函数,到达事件处理函数,整个过程为响应函数。


http://www.mrgr.cn/news/41332.html

相关文章:

  • 【分别为微服务云原生】9分钟ActiveMQ延时消息队列:定时任务的革命与Quartz的较量
  • 主存储器——半导体芯片简介
  • 大数据实时数仓Hologres(三):存储格式介绍
  • Java 方法前面加 <T> 是做什么?泛型方法
  • 2025河南国际台球产业展览会,中国国际台球产业链发展大会
  • 【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
  • 完全背包问题
  • 声纳技术24.1.19声纳定向方法
  • C++类和对象(上)
  • rtmp协议转websocketflv的去队列积压
  • 【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换,和文本日期格式转换。
  • 三、数据链路层(下)
  • HCIP-HarmonyOS Application Developer 习题(四)
  • 药物识别与分类系统源码分享
  • 【MySQL报错】---Data truncated for column ‘age‘ at row...
  • [C++] 剖析AVL树功能的实现原理
  • 硬件面试(一)
  • 深入剖析JavaScript中的encodeURIComponent函数:原理、应用及注意事项
  • Linux查看触摸坐标点的方法,触觉智能RK3562开发板,瑞芯微、全志等通用
  • 数据库索引和磁盘的关系大揭秘