Qt 总结

news2026/4/23 16:22:27

由于工作需要用到Qt。把过程中学习到的东西记录下来,希望能帮到他人和将来的自己。

由于需要快速实现需求,所以对Qt只是使用,并没有对原理的深入理解。

故此文只适合入门,不适合深入学习Qt。


文章目录

        • 安装&维护
        • 示例&教程
        • 构建系统
        • 编译套件
        • Qt命令行环境
        • 半自动的内存管理
        • 信号槽机制
        • GUI图形界面开发
        • 打包
        • 帮助文档

安装&维护
  • 在线安装器

    • 在qt官网下载

    • 选择组件,注意选择qt的版本和编译器的版本,以及ide(qt creator)。

    • lts版本较稳定。社区版的lts版本有6.2.4,5.15.2

  • 维护工具

    • 位置在qt的安装目录

    • 日后可随意增删改组件

  • 附注: 使用国内镜像源加速

    • 用命令行启动在线安装器或维护工具,并加上命令行参数–mirror https://mirror.nju.edu.cn/qt
示例&教程
  • 在qt creator的欢迎界面
构建系统
  • qmake/cmake
  • 要使用某个模块,要先在cmake/qmake中添加
  • 把 头文件/源文件/资源文件/界面文件 添加到项目中
编译套件
  • windows上有mingw/msvc等
Qt命令行环境
  • 功能:打包、测试、预览图形界面等

  • 位置:开始菜单->所有应用->Qt-> Qt x.x.xx(xx.xx.xx)

半自动的内存管理
  • 继承自QObject/QWidget的对象。可以设置父对象。所有对象可以组成一个或若干个对象树。根对象被回收时它的子孙对象会自动被回收。

  • 附:c++的其他内存管理方式:raii等。

信号槽机制
  • 观察者模式
  • 是QObject的子孙且包含Q_OBJECT宏的类,可以声明信号或槽
  • 信号:用singls宏声明,只有声明没有实现
  • 槽:用slots宏声明,有实现
  • 例子:
	//对象1发出信号1时,对象2的信号2/槽2会被触发
    QObject::connect( 对象1, 信号1, 对象2, 信号2/槽2 )
​	
​	//对象1发出信号1时,lambda表达式会被触发
​	QObject::connect( 对象1, 信号1,  lambda表达式 )
    
    //手动发射信号
    emit 对象.信号名()
GUI图形界面开发
  • 界面开发方式

    • widgets-based
      • 直接new控件
      • ui文件
    • qt quick
      • 程序执行时用js引擎解析qml文件,边执行边解析渲染

      • note: 如果使用cmake,图片要添加到 cmake

      • 事件处理

        • connect、on信号名首字母大写
      • 组件,参考:

        • qt quick 核心编程 第7章
        • qml 组件 https://blog.csdn.net/kenfan1647/article/details/120546294
        • qml 自定义控件 https://blog.csdn.net/u013718730/article/details/104160498
        • qml 自定义类型 https://blog.csdn.net/beibeix2015/article/details/111991060
      • qml与c++交互

        • 此文写的很细致适合入门:https://blog.csdn.net/xiezhongyuan07/article/details/109245920
        • 此文总结的很全面:https://blog.csdn.net/xiezhongyuan07/article/details/109318209
        • 这是demo:https://gitee.com/xx2211/projects
        • 这是进阶demo
          • cpp中使用qml https://blog.csdn.net/bureau123/article/details/124454536
          • qml中使用cpp https://blog.csdn.net/bureau123/article/details/124378214
  • 窗口坐标系

    • 左上为原点,向右为x正方向,向下为y正方向
  • view & model

    • view显示数据的容器 model存储数据 delegate定义显示方式
  • 自定义控件(widget)

    • 继承Qt控件,修改外观、布局、添加子控件等。
    • ui设计器中使用自定义控件,先使用基本控件,再“提升为”自定义控件
  • dpi, pointSize, pixeSize

    • pointSize自适应,pixelSize像素单位
打包
  • windeployqt命令,有时需要手动替换依赖
  • 打包成一个文件:可以使用enigma virtual box工具,但可能有许可争议
  • 验证打包是否成功:可以在sandbox中尝试运行
帮助文档
  • 工具栏->帮助->索引
  • 在线文档 https://doc.qt.io/ https://doc.qt.io/all-topics.html
  • 第三方qml教程 https://blog.csdn.net/bureau123/category_11712436.html
  • 第三方qt教程 https://blog.csdn.net/bureau123/category_10691949.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1562509.html

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

相关文章

智乃想考一道鸽巢原理

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e9, maxm 4e4 5; co…

【御控物联】JavaScript JSON结构转换(14):对象To数组——规则属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、术语解释三、案例之《JSON对象 To JSON数组》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

实验:基于Red Hat Enterprise Linux系统的创建磁盘和磁盘分区(一)

目录 一. 实验目的 二. 实验内容 三. 实验设计描述及实验结果 fdisk [参数] [设备] 1. 为虚拟机添加1块大小为3-5G的硬盘nvme&#xff0c;将该硬盘划分1个主分区和两个逻辑分区分别为600MB。 partprobe [选项] [设备] 2. 将主分区格式化为ext4文件系统并挂载到/自己名字命名…

【Go】十五、接口、多态、断言

文章目录 1、接口的引入2、接口3、接口的注意点4、多态5、断言6、Type Switch 1、接口的引入 以日常生活中打招呼为例&#xff0c;定义接口规范&#xff0c;各国人为打招呼为具体的实现 package main import "fmt"//接口的定义&#xff1a;定义规则、定义规范&…

3. WiFi基本原理

1. WiFi简介 WiFi的全称是Wireless Fidelity。它是一种无线网络通信技术&#xff0c;由Wi-Fi联盟拥有&#xff0c;目的是改善基于IEEE 802.11标准的无线网络产品之间的互通性&#xff0c;允许电子设备在没有物理连接的情况下进行高速数据传输。此外&#xff0c;WiFi也被视为IE…

手搓Docker-Image-Creator(DIC)工具(03):实现alpine+jre的镜像

此篇博客将介绍如何使用 Docker 创建一个alpine3.10-jre1.8.0_401 的 Docker 镜像&#xff0c;并使用 Docker 运行起来。将用到 Dockerfile 的 COPY 命令、RUN 命令、ENV 命令&#xff0c;最终实现基于单一应用的 Dockerfile 构建镜像和运行。 紧急修改&#xff1a;代码我是在m…

代码随想录第27天| 39. 组合总和

39. 组合总和 39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) 带你学透回溯算法-组合总和&#xff08;对应「leetcode」力扣题目&#xff1a;39.组合总和&#xff09;| 回溯法精讲&#xff01;_哔哩哔哩_bilibili 给你一个 无重复元…

理解 SQL 数据添加:从基础到实践

引言&#xff1a; 在现代软件开发中&#xff0c;数据库是不可或缺的一部分。而 SQL 作为结构化查询语言的代表&#xff0c;广泛应用于数据库管理系统中&#xff0c;为我们提供了强大的数据管理和查询能力。 主题&#xff1a; 我们将从基础的 SQL INSERT INTO 语句开始&…

使用Pollard_rho算法分解质因数

分解质因数的朴素算法 最简单的算法即为从 [2, sqrt&#xff08;N&#xff09;] 进行遍历。 vector<int> breakdown(int N) {vector<int> result;for (int i 2; i * i < N; i) {if (N % i 0) { // 如果 i 能够整除 N&#xff0c;说明 i 为 N 的一个质因子。…

鸿蒙原生应用开发-网络管理Socket连接(一)

一、简介 Socket连接主要是通过Socket进行数据传输&#xff0c;支持TCP/UDP/TLS协议。 二、基本概念 Socket&#xff1a;套接字&#xff0c;就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。 TCP&#xff1a;传输控制协议(Transmission Control Protocol)。是一…

HarmonyOS 应用开发之Worker

Worker主要作用是为应用程序提供一个多线程的运行环境&#xff0c;可满足应用程序在执行过程中与主线程分离&#xff0c;在后台线程中运行一个脚本操作耗时操作&#xff0c;极大避免类似于计算密集型或高延迟的任务阻塞主线程的运行。 Worker运作机制 图1 Worker运作机制示意…

联通iccid 19转20 使用luhn 算法的计算公式

联通iccid 19转20 使用luhn 算法的计算公式 第一次对接iccid 才知道 使用的是luhn 算法 19转20位 文章来源于 文章来源 当时也是一脸懵逼 的状态&#xff0c;然后各种chatgpt 寻找&#xff0c;怎么找都发现不对&#xff0c;最后看到这片java的文章实验是正确的&#xff0c;因…

MySQL 进阶-----索引使用规则

目录 前言 一、验证索引效率 二、最左前缀法则 三、范围查询 四、索引失效情况 1.索引列运算 2.字符串不加引号 3 .模糊查询 4.or连接条件 5 .数据分布影响 前言 本期我们学习MySQL索引的使用方法&#xff0c;在讲解索引的使用原则之前&#xff0c;先通过一个简单的…

JavaSE——面向对象高级三(5/5)-泛型方法、泛型的通配符、泛型擦除和注意事项

目录 泛型方法 泛型的通配符 泛型擦除和注意事项 泛型方法 修饰符 <类型变量,类型变量,...> 返回值类型 方法名(形参列表){ } public static <T> void test(T t){} 注意&#xff1a;下面这种不是泛型方法 public E get(int index){return (E) arr[index]; } 具体…

(九)Docker的认识

1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势&#xff0c;但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中&#xff0c;依赖的组件非常多&#xff0c;不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署&#xff0c;环境不一定一致…

JavaEE SSM框架学习——MacOS Eclipse环境搭建

MacOS环境搭建 安装Homebrew Homebrew是一个包管理器&#xff0c;我们可以通过它来安装许多软件 首先打开Homebrew中文官网(brew.sh/zh-cn) 如图所示&#xff0c;复制下面那行命令到你的Macbook终端 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Ho…

java(4)之运算符

1、算术运算符 运算符含义表达式加11-减1-1*乘1*2/除2/1%取余5%2 2、赋值运算符 即 表示将右边的值赋给左边的变量 即 int i &#xff1b; i 1&#xff1b; 运算符含义 表达式 x xyxy-x x-yx - y*x x*yx*y/x x/yx /y%x x%yx %y 代码示例 public class Main {pub…

免费图片转excel方案大全

随着信息技术的发展&#xff0c;我们经常会遇到需要将图片中的数据转换成Excel表格的情况。这种需求在数据分析、报表制作、信息整理等领域尤为常见。然而&#xff0c;许多人在面对这一任务时感到困惑&#xff0c;不知道如何进行。本文将为大家介绍几种免费的图片转Excel方案&a…

软考 - 系统架构设计师 - 数据流图案例题

阅读以下关于系统数据分析与建模的叙述&#xff0c;在答题纸上回答问题1至问题3。 【说明】 某公司正在研发一套新的库存管理系统。系统中一个关键事件是接收供应商供货。项目组系统分析员小王花了大量时间在仓库观察了整个事件的处理过程&#xff0c;并开发出该过程所执行活动…

美食分享(源码+文档)

美食分享系统&#xff08;小程序、ios、安卓都可部署&#xff09; 文件包含内容程序简要说明含有功能项目截图客户端主页注册界面美食详细及教程界面搜索菜谱分类美食制作上传我的资料登录界面 管理端登录界面关键词管理用户管理分类管理历史管理菜谱管理 文件包含内容 1、搭建…