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

news2024/12/28 20:09:17

一、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:基于对话框,对话框一般主要用于弹窗,也可以用于主界面显示,它是从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.coloradmin.cn/o/2183082.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动驾驶系列—自动驾驶MCU架构全方位解析:从单核到多核的选型指南与应用实例

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

五子棋双人对战项目(3)——匹配模块

一、分析需求 二、约定前后端接口 三、实现游戏大厅页面(前端代码) 四、实现后端代码 五、线程安全问题 六、忙等问题 一、分析需求 需求:多个玩家,在游戏大厅进行匹配,系统会把实力相近的玩家匹配到一起。 要想实…

使用cmake配置pcl环境

项目文件在https://pan.quark.cn/s/d347f72c7432 文件中包含CMakeLists.txt,一个pcd文件,一个cpp源文件。 这里的话,首先你需要下载好cmake软件,并将其添加到环境变量。 CMakeLists.txt文件内容如下 cmake_minimum_required(VER…

「漏洞复现」EDU 某智慧平台 PersonalDayInOutSchoolData SQL注入漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…

鸿蒙媒体开发系列16——图像变换与位图操作

如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。 1、概述 图片处理指对PixelMap进行相关的操作,如获取图片信息、裁剪、缩…

鸿蒙媒体开发系列17——图片编码与EXIF处理

如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。 1、图片编码 图片编码指将PixelMap编码成不同格式的存档图片(当前仅支持…

完整网络模型训练(一)

文章目录 一、网络模型的搭建二、网络模型正确性检验三、创建网络函数 一、网络模型的搭建 以CIFAR10数据集作为训练例子 准备数据集: #因为CIFAR10是属于PRL的数据集,所以需要转化成tensor数据集 train_data torchvision.datasets.CIFAR10(root&quo…

《OpenCV》—— 指纹验证

用两张指纹图片中的其中一张对其验证 完整代码 import cv2def cv_show(name, img):cv2.imshow(name, img)cv2.waitKey(0)def verification(src, model):sift cv2.SIFT_create()kp1, des1 sift.detectAndCompute(src, None)kp2, des2 sift.detectAndCompute(model, None)fl…

消费电子制造企业如何使用SAP系统提升运营效率与竞争力

在当今这个日新月异的消费电子市场中,企业面临着快速变化的需求、激烈的竞争以及不断攀升的成本压力。为了在这场竞赛中脱颖而出,消费电子制造企业纷纷寻求数字化转型的突破点,其中,SAP系统作为业界领先的企业资源规划(ERP)解决方…

Python批量下载PPT模块并实现自动解压

日常工作中,我们总是找不到合适的PPT模板而烦恼。即使有免费的网站可以下载,但是一个一个地去下载,然后再批量解压进行查看也非常的麻烦,有没有更好方法呢? 今天,我们利用Python来爬取一个网站上的PPT&…

SSM整合:图书管理系统

图书管理系统 一.环境 1.数据库环境 CREATE DATABASE ssmbuild;USE ssmbuild;DROP TABLE IF EXISTS books;CREATE TABLE books (bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT 书id,bookName VARCHAR(100) NOT NULL COMMENT 书名,bookCounts INT(11) NOT NULL COMMENT 数量…

Leecode热题100-48.旋转图像

给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[[7,4,1],[8,5,2],[9,6,3]]示…

QML使用Qt自带软键盘例子

//注意:一定要保证Qt有安装VirtualKeyboard插件 import QtQuick 2.10 import QtQuick.Window 2.3 import QtQuick.Controls 2.3 import QtQuick.VirtualKeyboard 2.1 import QtQuick.VirtualKeyboard.Settings 2.1 Window { id: root visible: true w…

109.WEB渗透测试-信息收集-FOFA语法(9)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:108.WEB渗透测试-信息收集-FOFA语法(8) 未授权burp: …

净利润暴跌,撤了,募投资金大比例购置不动产,突击申请专利

开科唯识终止原因如下:首先,报告期内,开科唯识收入规模较小,2023年上半年净利润更是出现暴跌的情况,其2023年可能难以满足创业板上市新规。此外,开科唯识研发费用率始终低于同行业可比公司,仅有…

线性代数书中求解齐次线性方程组、非齐次线性方程组方法的特点和缺陷(附实例讲解)

目录 一、克拉默法则 1. 方法概述 2. 例16(1) P45 3. 特点 (1) 只适用于系数矩阵是方阵 (2) 只适用于行列式非零 (3) 只适用于唯一解的情况 (4) 只适用于非齐次线性方程组 二、逆矩阵 1. 方法概述 2. 例16(2) P45 3. 特点 (1) 只适用于系数矩阵必须是方阵且可逆 …

每日读则推(二)

n.免疫疗法 n.策略,行动计划,战略 n.一代 v.设计(engineer n.工程师,设计师 v.设计,建造) A novel immunotherapy strategy using in vivo generation of engineered CAR T cells can n.(长篇)小说 a.新颖的,珍奇的 …

WebGIS包括哪些技术栈?怎么学习?

WebGIS,其实是利用Web开发技术结合地理信息系统(GIS)的产物,它是一种通过Internet实现GIS交互操作和服务的最佳途径。 WebGIS通过图形化界面直观地呈现地理信息和特定数据,具有可扩展性和跨平台性。 它提供交互性&am…

CSP-J二轮模拟赛----张浩轩补题报告

1.题目报告 1.交替出场2.翻翻转转3.方格取数4.圆圆中的方方AC0分--文件读写0分20分--骗分 2.赛中概况 第一题比较顺利,五六分钟就开始敲代码,暴力AC。 第二题耗了30分钟左右才有思路,写的时候也不大顺利,用得递归。文件读写错了…

HTML+CSS 基础第三季课堂笔记

一、CSS基础概念 CSS有两个重要的概念,分别是样式和布局 CSS的样式分为两种,一种是文字的样式,一种是盒模型的样式 CSS的另一个重要的特性就是辅助页面布局,完成HTML不能完成的功能,比如并排显示,比如精…