2023-12-05 Qt学习总结 (AI辅助) 未完待续


点击 <C 语言编程核心突破> 快速C语言入门


Qt学习总结

  • 前言
  • 一 Qt是什么
  • 二 Qt开发工具链
  • 三 Qt编程涉及的术语和名词
  • 四 Qt Creator使用
  • 五 hello Qt!
  • 六 Qt控件和事件
  • 七 Qt信号和槽
  • 八 Qt自定义信号和槽
  • 九 Qt QObject基类
  • 十 QWidget基类
  • 十一 QMainWindow基类
  • 十二 QLabel文本框
  • 十三 QPushButton按钮
  • 十四 QLineEdit单行输入框
  • 十五 QListWidget列表框
  • 十六 QTableWidget表格控件
  • 十七 QTreeWidget树形控件
  • 十八 QMessageBox消息对话框
  • 十九 Qt布局管理
  • 二十 QTcpSocket QTcpServer网络库
  • 二十一 QProcess进程库
  • 二十二 QThread线程库
  • 二十三 QSqlDatabase数据库
  • 二十四 cmake工程管理文件
  • 二十五 QFile文件操作
  • 二十六 学生信息管理系统
  • 二十七 打包
  • 总结


前言

要解决问题: 学习qt最核心知识, 多一个都不学.


一 Qt是什么

Qt是一个跨平台的GUI应用程序开发框架,提供了丰富的GUI组件库和工具,支持C++编程语言。

Qt可以用于开发桌面应用程序、嵌入式系统、移动设备和Web应用程序等各种应用场景。

Qt的特点是易用、高效、灵活、跨平台、可扩展性好等。

官网连接: https://www.qt.io/

另外Qt的开源政策也比较值得关注, 有人戏称"开源刺客", 使用时要注意, 开源协议并不是免费的代名词.

二 Qt开发工具链

Qt开发工具链包括如下几个方面:

  1. Qt Creator:是Qt官方推荐的集成开发环境(IDE),用于开发Qt应用程序。它提供了丰富的自动化工具和调试支持,包括代码编辑,编译器,调试器,可视化设计工具等。
    qtcreator

  2. Qt Designer:是一个Qt应用程序界面设计工具,可以快速创建出美观的GUI界面。它提供了图形化的界面编辑器,支持拖放式的界面设计,可以预览和调整界面的布局和外观。
    Designer

  3. Qt Linguist:是Qt的国际化工具,用于将Qt应用程序翻译成多种不同的语言。它提供了一个简单而直观的界面,可以轻松地添加、编辑和维护翻译文件,包括.po(GNU Gettext)和.ts(Qt翻译)文件。

  4. Qt Assistant:是一个Qt文档工具,用于帮助开发者查找和浏览Qt文档。它提供了一份完整的Qt文档,并支持基于关键字或类名的搜索和查找。
    Assistant

  5. Qt Test:是一个Qt测试框架,可以帮助开发者编写和运行单元测试和集成测试。它提供了一些基本的测试工具,包括测试驱动程序、测试用例、测试报告、测试运行器等。

  6. 为了生成最终的可执行文件, 需要配置C++编译器, 可以是gcc, mingw64, mscv, clang. 同时需要使用CMake.
    在这里插入图片描述

三 Qt编程涉及的术语和名词

以下是一些 Qt 编程中常用的术语和名词:

  1. QObjects: Qt 中的所有对象都是 QObject 的子类。

  2. Signals and Slots:信号和槽是 Qt 中最重要的一种事件通信机制,允许在不同的对象之间进行通信。

  3. Widgets:Qt 中的 UI 组件,包括按钮、文本框、标签等等。

  4. Layouts:Qt 中用于管理窗口布局的类。

  5. Main Window:Qt 应用程序中的主窗口。

  6. QML:Qt Quick Markup Language,一种用户界面描述语言,用于在 Qt 中创建动态 UI。

  7. Model/View Programming:Qt 中一种用于管理数据和 UI 显示的编程模式。

  8. QPainter:绘图引擎,用于在 widget 上绘制图形。

  9. QThread:Qt 中的线程类,用于创建并管理线程。

  10. Qt Designer:Qt 中的图形界面设计器,用于可视化设计 UI。

四 Qt Creator使用

Qt Creator 用于创建Qt软件。以下是一些使用Qt Creator的步骤:

  1. 安装Qt Creator:

我是用msys2资源管理工具安装的, 基于clang64版本, 同时安装clang tool chain, qt6, 具体方法比较简单, 不再赘述.

安装完成后,打开Qt Creator。

  1. 创建一个新项目:
    在这里插入图片描述
    选择您要创建的应用类型(如控制台应用程序或窗口应用程序)。
    在这里插入图片描述
    设置项目名称和路径,然后单击“下一步”。
    在这里插入图片描述

  2. 配置项目:在这一步中,您可以选择构建设置
    在这里插入图片描述
    基类类型
    在这里插入图片描述
    语言
    在这里插入图片描述
    构建套件
    在这里插入图片描述
    汇总确认, 单击“完成”以创建新项目。
    在这里插入图片描述

  3. 编写代码:在Qt Creator中,您可以使用代码编辑器编写代码。选择您想要编辑的文件,然后开始编写代码。
    在这里插入图片描述

  4. 构建和运行项目:构建项目时,Qt Creator会自动生成可执行文件。也可以通过Qt Creator提供的调试工具来调试程序。
    在这里插入图片描述

  5. 调试:在Qt Creator中,您可以使用调试器调试程序。单击“调试”菜单,然后选择“调试器”。在调试器中,您可以设置断点、查看变量和堆栈跟踪等。
    在这里插入图片描述

  6. 完成:完成项目后,您可以导出可执行文件或创建安装程序。单击“构建”菜单,然后选择“构建设置”。在“构建设置”中,您可以选择要导出的文件类型和位置。
    在这里插入图片描述
    使用Qt提供的windeployqt工具自动复制依赖文件,并生成可执行文件。
    先将生成的可执行文件复制到一个文件夹, 如E:\clangC++\learnQT\Learn_10_export
    然后运行windeployqt自动复制依赖:

C:\Users\Lhb>cd E:\clangC++\learnQT\Learn_10_export
C:\Users\Lhb>E:
E:\clangC++\learnQT\Learn_10_export>windeployqt6 Learn_10.exe
E:\clangC++\learnQT\Learn_10_export\Learn_10.exe 64 bit, release executable
Adding Qt6Network for qtuiotouchplugin.dll
Adding Qt6Svg for qsvgicon.dll

在这里插入图片描述

五 hello Qt!

六 Qt控件和事件

七 Qt信号和槽

八 Qt自定义信号和槽

九 Qt QObject基类

十 QWidget基类

十一 QMainWindow基类

十二 QLabel文本框

十三 QPushButton按钮

十四 QLineEdit单行输入框

十五 QListWidget列表框

十六 QTableWidget表格控件

十七 QTreeWidget树形控件

十八 QMessageBox消息对话框

十九 Qt布局管理

二十 QTcpSocket QTcpServer网络库

二十一 QProcess进程库

二十二 QThread线程库

二十三 QSqlDatabase数据库

二十四 cmake工程管理文件

二十五 QFile文件操作

二十六 学生信息管理系统

二十七 打包


总结


点击 <C 语言编程核心突破> 快速C语言入门


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SL6015B降压恒流60V耐压1.5A高辉调光LED芯片 电路简单 元器件少

SL6015B是一款专为LED照明应用设计的降压恒流芯片&#xff0c;具有60V的耐压能力&#xff0c;最大输出电流可达1.5A。它采用高辉调光方式&#xff0c;通过改变输入电压或电流来调节LED的亮度。此外&#xff0c;SL6015B还具有电路简单和元器件数量少的特点&#xff0c;使其成为一…

Dinky之安装部署与基本使用

Dinky之安装部署与基本使用 Dinky概览Linux安装部署解压到指定目录初始化MySQL数据库修改配置文件加载依赖启动Dinky Docker部署启动dinky-mysql-server镜像启动dinky-standalone-server镜像 Dinky的基本使用上传jar包Flink配置集群管理集群实例管理集群配置管理 创建作业语句编…

clickhouse的向量化执行

背景 clickhouse快的很大一部分原因来源于数据的向量化执行&#xff0c;本文就来看一下向量化执行和正常标量执行的区别 SIMD的向量化执行 从上图可知&#xff0c;clickhouse通过SIMD指令可以做到一个cpu周期操作两个向量的运算操作&#xff0c;比起普通的cpu指令效率提高了N…

第17章 匿名函数

第17.1节 匿名函数的基本语法 [捕获列表](参数列表) mutable(可选) 异常属性 -> 返回类型 { // 函数体 }语法规则&#xff1a;lambda表达式可以看成是一般函数的函数名被略去&#xff0c;返回值使用了一个 -> 的形式表示。唯一与普通函数不同的是增加了“捕获列表”。 …

读书笔记-《数据结构与算法》-摘要3[选择排序]

选择排序 核心&#xff1a;不断地选择剩余元素中的最小者。 找到数组中最小元素并将其和数组第一个元素交换位置。在剩下的元素中找到最小元素并将其与数组第二个元素交换&#xff0c;直至整个数组排序。 性质&#xff1a; 比较次数(N-1)(N-2)(N-3)…21~N^2/2交换次数N运行…

【Redis】Redis 的学习教程(十三)Redis 各场景

由于Redis 支持比较丰富的数据结构&#xff0c;因此他能实现的功能并不仅限于缓存&#xff0c;而是可以运用到各种业务场景中&#xff0c;开发出既简洁、又高效的系统 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-bo…

P=NP?

背景&#xff1a;   2000年5月24日&#xff0c;新罕布什尔州的克莱数学研究所列出了数学和计算机科学中七个未解决的问题。然而&#xff0c;直到今天&#xff0c;这些问题中只有一个被解决了&#xff0c;那就是庞加莱猜想&#xff08;Poincar Conjecture&#xff09;——被俄…

上下拉电阻会增强驱动能力吗?

最近看到一个关于上下拉电阻的问题&#xff0c;发现不少人认为上下拉电阻能够增强驱动能力。随后跟几个朋友讨论了一下&#xff0c;大家一致认为不存在上下拉电阻增强驱动能力这回事&#xff0c;因为除了OC输出这类特殊结构外&#xff0c;上下拉电阻就是负载&#xff0c;只会减…

7.Vue UI库

7.Vue UI库 7.1移动端常用的UI库 &#xff08;1&#xff09; Vant&#xff1a;Vant 4 - A lightweight, customizable Vue UI library for mobile web apps.A lightweight, customizable Vue UI library for mobile web apps.https://vant-ui.github.io/vant/#/zh-CN &#xf…

ssm的网上奶茶店系统(有报告)。Javaee项目。

演示视频&#xff1a; ssm的网上奶茶店系统&#xff08;有报告&#xff09;。Javaee项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringMvc Mybat…

【Linux】ubuntu配置SSH服务

要在Ubuntu上配置SSH服务&#xff0c;首先安装ssh-server sudo apt install openssh-server 安装完成后&#xff0c;可以检查一下是否安装成功 systemctl status ssh vim /etc/ssh/sshd_config 此时ubuntu就可以被远程连接工具连接了&#xff0c;如果我们想配置关于SCP服务允…

elementUI table树默认箭头修改

table默认的箭头 需要的效果实心的 ::v-deep .el-icon-arrow-right {color: #49c0ff; }::v-deep.el-table .el-table__expand-icon {.el-icon-arrow-right:before {content: "\e791";} } content: "\e791"; 代表图标,可以在elementUI F12检查中得到

【c】16进制数转化为10进制数(计算方法在最后,大家也可以上网搜索视频,视频更详细,谢谢)

#include<stdio.h> #include<math.h> void trans(char arr1[],int arr[],int n) {puts("请输入16进制的数");for(int i0;i<n;i){scanf("%c",&arr1[i]);arr[i](int)arr1[i];}for(int k0;k<n;k){if(arr[k]>65&&arr[k]<7…

【C++】const关键字的详解!!

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

HPV专家谭巍主任谈:我国HPV感染率问题,以及该如何预防?

我国HPV感染问题比较严重&#xff0c;很多人在不知不觉中被感染。据统计&#xff0c;我国每年新增的HPV感染病例数量庞大&#xff0c;而感染人群的年龄也越来越年轻化。那么&#xff0c;我国的HPV感染率是多少?又该如何预防呢?对此北京劲松HPV诊疗中心主任谭巍曾做过临床调研…

java基础之HashSet详解

HashSet详解 HashSet是基于HashMap实现的一个单列存储的集合类&#xff0c;将所有的数据存在HashMap的key值中&#xff0c;而value全部使用一个Object对象存储 继承关系 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable…

Android Termux 安装Kali Linux 或 kali Nethunter史诗级详细教程

Android Termux 安装Kali Linux 或 kali Nethunter史诗级详细教程 一、Termux配置1、下载安装2、配置存储和换源3、基本工具安装 二、Kali Linux安装1、下载安装脚本2、更换apt源3、图形化安装 三、Kali Nethunter安装1、下载安装脚本2、更换apt源3、图形化连接 四、报错汇总1、…

2021年GopherChina大会-核心PPT资料下载

一、峰会简介 自 Go 语言诞生以来&#xff0c;中国便是其应用最早和最广的国家之一&#xff0c;根据 Jetbrains 在 2021 年初做的调查报告&#xff0c;总体来说目前大概有 110 万专业的开发者 选择 Go 作为其主要开发语言。就其全球分布而言, 居住在亚洲的开发者最多&#xff…

手把手教你购买腾讯云服务器

腾讯云是腾讯公司旗下的云计算服务提供商&#xff0c;提供一系列基础设施和云服务&#xff0c;涵盖了计算、存储、数据库、人工智能、大数据分析、物联网等领域。腾讯云在全球范围内建立了多个数据中心&#xff0c;提供多地域、多可用区的服务支持&#xff0c;为用户提供高可靠…

二维码智慧门牌管理系统升级:智能化制牌申请管理

文章目录 前言一、问题与解决方案&#xff1a;二、未来展望&#xff1a; 前言 二维码智慧门牌管理系统在城市管理中发挥重要作用&#xff0c;为解决传统门牌制作中繁琐、周期长和低效的问题&#xff0c;系统升级后的制牌申请管理功能带来更为便捷的解决方案。 一、问题与解决方…