Qt教程,Qt5编程入门教程(非常详细)
文章平均质量分 85
睿科知识云
中国航天科工信息系统项目管理高级工程师
取得法律职业资格证书
希望和大家一起学习一起进步
展开
-
Qt打包程序详解(适用于Windows平台)
Qt打包程序详解(适用于Windows平台)分享 Qt 程序(项目)的方式无非两种,要么直接分享程序的源代码,要么分享程序生成的可执行文件。和直接分享源码相比,大多数人会选择后者。但遗憾地是,Qt Creator 默认以动态链接的方式生成可执行文件,该文件无法独立运行,必须为其提供所需的动态链接库。也就是说,只分享 Qt Creator 生成的可执行文件是不行的,必须将运行所需的动态链接库一起分享,可执行文件才能在他人的电脑上正常运行。对 Qt 程序进行打包,指的就是找到可执行文件运行需要的所有动态库原创 2022-01-26 13:13:06 · 2605 阅读 · 0 评论 -
Qt QFile文件操作详解
Qt QFile文件操作详解很多应用程序都需要具备操作文件的能力,包括对文件内容进行读/写、创建和删除文件等,甚至某些应用程序的诞生纯粹是为了操作文件,比如 WPS Office、PDFedit 等。为此,Qt 框架提供了 QFile 类专门用来操作文件。QFile文件操作QFile 类支持对文件进行读取、写入、删除、重命名、拷贝等操作,它既可以操作文件文件,也可以操作二进制文件。使用 QFile 类操作文件之前,程序中需引入头文件。创建 QFile 类的对象,常用的构造函数有:QFile::QF原创 2022-01-26 13:10:10 · 23297 阅读 · 3 评论 -
Qt自定义信号和槽函数
Qt自定义信号和槽函数实际开发中,如果仅使用 Qt 提供的信号函数和槽函数,会经常遇到信号函数的参数类型和个数无法满足实际需求、信号函数和槽函数的参数类型不匹配等问题。解决此类问题,最简单有效的方式就是:自定义场景需要的信号函数和槽函数。自定义信号函数信号函数指的是符合以下条件的函数:定义在某个类中,该类直接或间接继承自 QObject 类;用 signals 关键字修饰;函数只需要声明,不需要定义(实现);函数的返回值类型为 void,参数的类型和个数不限。举个简单的例子:class M原创 2022-01-26 12:56:44 · 4150 阅读 · 0 评论 -
Qt pro文件详解
Qt pro文件详解默认情况下,每个 Qt 项目都包含一个后缀名为.pro、名称和项目名相同的文件,我们通常称它为项目管理文件或者工程管理文件(简称 pro 文件)。例如,新建一个 Qt 项目,如下图所示:图 1 项目结构该项目的项目名为 Demo,项目中共包含 4 个文件,其中 Demo.pro 就是项目管理文件。任何一个 Qt 项目都至少包含一个 pro 文件,此文件负责存储与当前项目有关的配置信息,比如:项目中用到了哪些模块?项目中包含哪些源文件,哪些头文件,它们的存储路径是什么?项原创 2022-01-26 12:53:24 · 6584 阅读 · 0 评论 -
Qt布局管理详解(5种布局控件)
Qt布局管理详解(5种布局控件)实际开发中,一个界面上可能包含十几个控件,手动调整它们的位置既费时又费力。作为一款成熟的 GUI 框架,Qt 提供了很多摆放控件的辅助工具(又称布局管理器或者布局控件),它们可以完成两件事:自动调整控件的位置,包括控件之间的间距、对齐等;当用户调整窗口大小时,位于布局管理器内的控件也会随之调整大小,从而保持整个界面的美观。总之借助布局管理器,我们无需再逐个调整控件的位置和大小,可以将更多的精力放在软件功能的实现上。Qt 共提供了 5 种布局管理器,每种布局管理器对应原创 2022-01-26 12:44:05 · 1290 阅读 · 0 评论 -
Qt QMessageBox用法详解
Qt QMessageBox用法详解QMessageBox 是 Qt 框架中常用的一个类,可以生成各式各样、各种用途的消息对话框,如图 1 所示。图 1 QMessageBox消息对话框很多 GUI 程序都会用到消息对话框,且很多场景中使用的消息对话框是类似的,唯一的区别只是提示信息不同。为了提高程序员的开发效率,避免重复地“造轮子”,Qt 开发者设计好了几种通用的 QMessageBox 消息对话框,需要时可以直接使用。通用的QMessageBox消息框Qt 提供了 6 种通用的 QMessa原创 2022-01-26 12:25:03 · 82181 阅读 · 0 评论 -
Qt QTreeWidget树形控件用法详解
Qt QTreeWidget树形控件用法详解QTreeWidget 是 Qt 框架提供的一种树形控件,它能以树形结构展示数据(或者文件)之间的包含关系。举个简单的例子,下图是我们创建好的一个 Qt 项目:图 1 树形结构图 1 是树形结构的一个典型示例,MyFirstQt 项目的内部构成一目了然,项目内部包含一个 MyFirstQt.pro 项目文件和 3 个文件夹,每个文件夹中包含哪些文件也都可以清楚地看到。作为一款成熟的 GUI 框架,Qt 提供了 QTreeWidget 树形控件,专门用来以原创 2022-01-26 12:09:38 · 19783 阅读 · 5 评论 -
Qt QTableWidget表格控件的用法(非常详细)
Qt QTableWidget表格控件的用法(非常详细)QTableWidget 是 Qt 提供的一种表格控件(如图 1 所示),类似于我们经常使用的 Excel 表格,可以将数据以表格的方式展示给用户。整个 QTableWidget 表格可以分为 3 个区域:区域 ① 和 ② 都是表头,区域 ① 设置每一行的表头,区域 ② 设置每一列的表头。我们可以自定义两个区域内的表头,比如第一列是各个教程的名称,所以第一列的表头可以修改为“教程名称”;区域 ③ 为数据区,表格中所有的数据都位于此区域,该区域内原创 2022-01-25 13:55:37 · 36916 阅读 · 0 评论 -
Qt QListWidget列表框用法详解
Qt QListWidget列表框用法详解很多应用程序中需要以列表的形式向用户展示数据(资源),比如 Windows 操作系统会以列表的方式展示很多张桌面背景图(如图 1a) 所示),再比如很多音乐播放器中以列表的形式展示音乐资源,用户可以选择自己喜欢的音乐(如图 1b) 所示)。图 1 常见的列表窗口使用 Qt 框架开发 GUI 程序,如果需要以列表的方法展示数据,可以优先考虑用 QListWidget 类实现。QListWidget列表框的创建QListWidget 是 Qt 提供的控件类,原创 2022-01-25 13:44:34 · 18101 阅读 · 1 评论 -
Qt QLineEdit单行输入框用法详解
Qt QLineEdit单行输入框用法详解QLineEdit 是 Qt 提供的一个控件类,它直接继承自 QWdiget 类,专门用来创建单行输入框,如下图所示:图 1 单行文本输入框实际开发中,我们经常用到 QLineEdit 输入框,比如接收用户输入的个人信息、账户信息、角色名称等,就可以用 QLineEdit 实现。QLineEdit单行输入框的创建每个单行输入框都是 QLineEdit 类的一个实例对象,QLineEdit 类提供有两个构造函数,分别是:QLineEdit(QWidget原创 2022-01-25 13:24:21 · 6673 阅读 · 1 评论 -
Qt QPushButton按钮用法详解
Qt QPushButton按钮用法详解按钮是 GUI 开发中最常用到的一种控件,作为一款著名的 GUI 开发框架,Qt 提供了很多种按钮,比如 QPushButton(普通按钮)、QRadioButton(单选按钮)、QToolButton(工具栏按钮)等。QPushButton 是实际开发中最常使用的一种按钮,本节就给大家详细讲解它的用法。QPushButton按钮的创建QPushButton 类间接继承自 QWidget 类,它的继承关系如下:QPushButton -> QAbst原创 2022-01-24 12:51:47 · 13387 阅读 · 0 评论 -
Qt QLabel文本框的使用
Qt QLabel文本框的使用QLabel 是 Qt 帮我们写好的一个控件类,间接继承自 QWidget 类,它的继承关系如下:QLabel -> QFrame -> QWidget从字面上理解,QLabel 可以解释为“Qt 的 Label”,即 Qt 提供给我们的一种文本控件,它的基础功能是显示一串文本。除了显示一串文本外,QLabel 控件上还可以放置图片、超链接、动画等内容。本质上,每个文本框都是 QLabel 类的一个实例对象。QLabel 类提供了两个构造函数,分别是:原创 2022-01-24 12:39:51 · 9394 阅读 · 0 评论 -
Qt信号和槽机制详解
Qt信号和槽机制详解信号和槽是 Qt 特有的消息传输机制,它能将相互独立的控件关联起来。举个简单的例子,按钮和窗口本是两个独立的控件,点击按钮并不会对窗口造成任何影响。通过信号和槽机制,我们可以将按钮和窗口关联起来,实现“点击按钮会使窗口关闭”的效果。信号和槽在 Qt 中,用户和控件的每次交互过程称为一个事件,比如“用户点击按钮”是一个事件,“用户关闭窗口”也是一个事件。每个事件都会发出一个信号,例如用户点击按钮会发出“按钮被点击”的信号,用户关闭窗口会发出“窗口被关闭”的信号。Qt 中的所有控件原创 2022-01-24 12:29:04 · 20680 阅读 · 0 评论 -
Qt控件和事件
Qt控件和事件Qt 是一个著名的 GUI 框架,用来开发和用户交互的图形界面。作为 GUI 框架,丰富的控件和灵活的事件机制是不可或缺的,Qt 在这一方面做得非常优秀。什么是 Qt 控件Qt 控件又称组件或者部件,指用户看到的所有可视化界面以及界面中的各个元素,比如按钮、文本框、输入框等。为了方便程序员开发,Qt 提供了很多现成的控件。打开某个带 ui 文件的 Qt Widgets Application 项目,ui 文件的 Widget Box 一栏展示了 Qt 提供的几乎所有控件:图 1 Q原创 2022-01-24 12:22:13 · 2437 阅读 · 0 评论 -
分析第一个Qt程序
分析第一个Qt程序前面章节中,通过在 xxx.ui 文件中拖拽 Label 组件,设计出了一个显示 “Hello,World!” 的窗口,如下图所示:图 1 简单的界面本节我们完全舍弃 xxx.ui 文件,亲手编写代码实现图 1 所示的界面。创建项目首先,打开 Qt Creator 并创建一个 Qt Widgets Application 项目,创建过程可以参考 《编写第一个Qt程序》一节。需要注意的是,我们要创建一个不带 xxx.ui 文件的项目,如下图所示:图 2 创建不带 ui 文件的原创 2022-01-24 12:17:10 · 2267 阅读 · 0 评论 -
编写第一个Qt程序
编写第一个Qt程序学习一种编程语言或编程环境,通常会先编写一个“Hello World”程序。我们也用 Qt Creator 编写一个“Hello World”程序,以初步了解 Qt Creator 设计应用程序的基本过程,对使用 Qt Creator 编写 Qt C++ 应用程序建立初步的了解。新建一个项目单击 Qt Creator 的菜单项文件->新建文件或项目,出现如图 1 所示的对话框。在这个对话框里选择需要创建的项目或文件的模板。图 1 新建文件或项目对话框Qt Creator原创 2022-01-24 12:11:12 · 696 阅读 · 0 评论 -
Qt Creator的初步使用
Qt Creator的初步使用启动 Qt Creator,出现如图 1 所示的主窗口:图 1 Qt Creator主窗口Qt Creator 的界面很简洁。上方是主菜单栏,左侧是主工具栏,窗口的中间部分是工作区。根据设计内容不同,工作区会显示不同的内容。图 1 是在左侧主工具栏单击“Welcome(欢迎)”按钮后显示实例的界面。这时工作区的左侧有 “Projects”、“Examples(示例)”、“Tutorials(教程)”、“Get Started Now”几个按钮,单击后会在主工作区显示相原创 2022-01-24 12:02:21 · 972 阅读 · 0 评论 -
Qt编程涉及的术语和名词
Qt编程涉及的术语和名词本节我们来介绍一下使用 Qt 编程过程中常用的术语和名字,它们不一定专属于 Qt,在其它的 C/C++ 开发过程中也会使用到。ProjectProject 的中文翻译是“项目”或者“工程”,这里的项目是指为实现某个相对独立功能的程序代码合集,这些代码不单单是放在一块,而是有相互之间的关联性,并且有专门负责管理该项目的项目文件,比如:Qt 使用 .pro 文件管理项目;VC++ 则使用 .vcproj 作为项目文件。集成开发环境通常都是依据项目文件(.pro/.vcproj原创 2022-01-24 11:59:01 · 589 阅读 · 0 评论 -
认识一下Qt用到的开发工具
认识一下Qt用到的开发工具Qt 不是凭空产生的,它是基于现有工具链打造而成的,它所使用的编译器、链接器、调试器等都不是自己的,Qt 官方只是开发了上层工具。下面我们分几个部分讲解 Qt 使用到的工具链。GNU 工具集在上个世纪八十年代,计算机都是奢侈品,操作系统里最著名的是 Unix 家族, 当时还没有 Windows、Linux 之类的,Unix 系统都是商业软件,里面的应用软件也是商业软件, 全是封闭的环境。系统程序员 Richard M. Stallman (RMS) 在此环境下创立了与众不同原创 2022-01-24 11:54:53 · 803 阅读 · 0 评论 -
解密Qt安装目录的结构
解密Qt安装目录的结构了解 Qt 安装目录的结构虽然不是编程必须的,但是它能练就我们的内功,让我们对 Qt 的编程环境了如指掌。Windows 和 Linux 下 Qt 安装目录的结构非常相似,我们以 Windows 为例进行讲解,Linux 不再赘述。Qt 整体目录结构不同版本 Qt 的安装目录结构大同小异,本节我们以 Qt 5.9.0 为例来说明,如下图所示。图1:Qt 安装目录的结构为了方便描述,下文我们使用~表示 Qt 的安装目录。注意,~\5.9\ 和 ~\Tools\ 目录下都有原创 2022-01-24 11:45:15 · 433 阅读 · 0 评论 -
Linux Qt cannot find -lGL错误完美解决方案(亲测有效)
Linux Qt cannot find -lGL错误完美解决方案(亲测有效)对于很多 Linux 发行版本,Qt 安装完成后如果直接编译或者运行项目,会出现“cannot find -lGL”错误,如下图所示:这是因为 Qt 找不到 OpenGL 的动态链接库(libGL.so)。OpenGL 在大部分 Linux 发行版中都是默认安装的,包括 Ubuntu、CentOS 等,找不到该链接库一般都是路径不对。Qt 默认在 /usr/lib/ 目录下查找动态链接库,但是很多 Linux 发行版将 O原创 2022-01-22 16:34:00 · 877 阅读 · 0 评论 -
图解Qt安装(Linux平台)
图解Qt安装(Linux平台)Linux 发行版虽然众多,但 Qt 安装过程大同小异,本节以 CentOS 7 为例来演示 Qt 的安装。在前一节中我们已经讲解了 Qt 安装包的下载方式,Qt 5.9.0 Linux 安装包的名称为 qt-opensource-linux-x64-5.9.0.run。下载的 run 文件不一定具有可执行权限, 可以执行如下命令开启执行权限:chmod +x /文件夹路径/qt-opensource-linux-x64-5.9.0.run将“文件夹路径”替换为自己系原创 2022-01-22 16:31:35 · 1168 阅读 · 0 评论 -
图解Qt安装(Windows平台)
图解Qt安装(Windows平台)本节介绍 Qt 5.9.0 在 Windows 平台下的安装,请提前下载好 Qt 5.9.0。不知道如何下载 Qt 的读者请转到:Qt下载(多种下载通道+所有版本)目前较高版本的 Qt 仅支持 Win7 及其以后的操作系统,不支持 Win XP;使用 Win XP 的读者请安装 Qt 5.5.1 之前的版本。Qt 占用的存储空间很大,安装之前建议先准备好 8GB 以上的磁盘空间。对于目前 Qt 最新版开发环境,如果不安装源代码包,实际占用大约 5.5GB;如果选择安装原创 2022-01-22 16:25:36 · 1107 阅读 · 0 评论 -
Qt下载(多种下载通道+所有版本)
Qt下载(多种下载通道+所有版本)Qt 体积很大,有 1GB~3GB,官方下载通道非常慢,相信很多读者会崩溃,所以建议大家使用国内的镜像网站(较快),或者使用迅雷下载(很快)。作为 Qt 下载教程,本文会同时讲解以上三种下载方式。Qt 官方下载(非常慢)Qt 官网有一个专门的资源下载网站,所有的开发环境和相关工具都可以从这里下载,具体地址是:http://download.qt.io/图1:Qt 官方下载网站截图对目录结构的说明目录说明archive各种 Qt 开发工具原创 2022-01-22 16:18:14 · 3188 阅读 · 0 评论 -
学习QML还是C++?
学习QML还是C++?Qt4 时代的主流就是传统部件(或叫控件)编程,所用的语言一般是 C++。 Qt5 诞生之时,正是手机移动设备蓬勃发展的时候,而传统的 C++ 部件编写的界面对手机应用程序非常方便,比如手机屏幕显示随意翻转, 这在传统桌面程序里基本遇不到,谁会将 22 寸显示器翻过来转过去呢。为了适应手机移动应用开发, Qt5 将 QML 脚本编程提到与传统 C++ 部件编程相同的高度,力推 QML 界面编程,当然 QML 主要用于手机移动应用程序。 QML 包含大量使用手机移动设备的功能模块,比原创 2022-01-22 16:11:15 · 274 阅读 · 0 评论 -
Qt和其它GUI库的对比
**Qt和其它GUI库的对比**世界上的 GUI 库多如牛毛,有的跨平台,有的专属于某个操作系统;有的只有 UI 功能,有的还融合了网络通信、多媒体处理、数据库访问等底层功能。Windows 下的 GUI 库Windows 下的 GUI 解决方案比较多:基于 C++ 的有 Qt、MFC、WTL、wxWidgets、DirectUI、Htmlayout;基于 C# 的有 WinForm、WPF;基于 Java 的有 AWT、Swing;基于 Pascal 的 有Delphi;基于Go语言的原创 2022-01-22 16:09:59 · 1826 阅读 · 0 评论 -
Qt是什么?Qt简介(非常全面)
Qt是什么?Qt简介(非常全面)Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。Qt 是纯 C++ 开发的,所以学好 C++ 非常有必要,对于不了解 C++ 的读者,我建议先阅读《C语言教程》,再阅读《C++教程》。C++ 是在C语言的基础上发展起来的,学完C语言就学了 C++ 的一半了。Q原创 2022-01-22 16:07:32 · 27875 阅读 · 1 评论