![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
QT学习修炼
QT修炼
江南又旧雨
踏踏实实,简简单单,实实在在,做好当前,做好每一天!低头走路,莫问前程。
展开
-
Qt事件event总结
现在我们可以总结一下 Qt 的事件处理,实际上是有五个层次:重写 paintEvent()、mousePressEvent() 等事件处理函数。这是最普通、最简单的形式,同时功能也最简单。 重写 event() 函数。event() 函数是所有对象的事件入口,QObject 和 QWidget 中的实现,默认是把事件传递给特定的事件处理函数。 在特定对象上面安装事件过滤器。该过滤器仅过滤该...原创 2020-04-01 16:58:08 · 422 阅读 · 0 评论 -
Qt总结_再谈:Qt5信号和槽_Qt4信号和槽
有重载的信号如果信号有重载,比如我们向 Newspaper 类增加一个新的信号:void newPaper(const QString &name, const QDate &date);此时如果还是按照前面的写法,编译器会报出一个错误:由于这个函数(注意,信号实际也是一个普通的函数)有重载,因此不能用一个取址操作符获取其地址。回想一下 Qt 4 中的处理。在...原创 2020-04-01 15:10:39 · 318 阅读 · 0 评论 -
Qt总结_Qt5信号和槽_Qt4信号和槽对比分析
在对于重载的信号中,Qt4信号和槽表达优于Qt5信号和槽,Qt5信号和槽兼容Qt4信号和槽兼容。所谓 GUI 界面,归根结底,就是一堆组件的叠加。我们创建一个窗口,把按钮放上面,把图标放上面,这样就成了一个界面。在放置时,组件的位置尤其重要。我们必须要指定组件放在哪里,以便窗口能够按照我们需要的方式进行渲染。这就涉及到组件定位的机制。Qt 提供了两种组件定位机制:绝对定位和布局定位。...原创 2020-03-31 17:07:55 · 948 阅读 · 1 评论 -
Qt总结_对象模型_组件parent的理解
标准 C++ 对象模型在运行时效率方面卓有成效,但是在某些特定问题域下的静态特性就显得捉襟见肘。GUI 界面需要同时具有运行时的效率以及更高级别的灵活性。为了解决这一问题,Qt “扩展”了标准 C++。所谓“扩展”,实际是在使用标准 C++ 编译器编译 Qt 源程序之前,Qt 先使用一个叫做 moc(Meta Object Compiler,元对象编译器)的工具,先对 Qt 源代码进行一次预处理(...原创 2020-03-31 16:46:29 · 633 阅读 · 0 评论 -
Qt总结
(1)app的生命周期长于 组件的 的生命周期。否则这可是 Qt 编程的大忌,下面是错误的例子。#include <QApplication>#include <QLabel> int main(int argc, char *argv[]){ QApplication app(argc, argv); QLabel *label = n...原创 2020-03-31 15:59:28 · 216 阅读 · 0 评论 -
VTK_Learning_图形进阶_vtkPolyData数据源讨论与数据创建
1.VTKPolyData源数据总结1之前的实例中,我们利用VTKConeSource源数据创建了一个棱锥。实际上VTK内部提供可以写数据源类来快速获取简单的图形数据。下面给出了最常见的几种VTKPolyData数据源类:2.vtkPolyData数据的创建前面多采用图像或者VTK合成源数据进行讨论。在这里,我们希望深入底层,显示地定义一个点集合和一个单元集合。点集合...原创 2020-03-02 21:37:46 · 217 阅读 · 0 评论 -
Qt控件增加属性并通过添加的属性设置样式
https://blog.csdn.net/maowendi/article/details/79695204原创 2020-02-25 12:02:03 · 636 阅读 · 0 评论 -
Qt自定义控件以及控件的提升
https://blog.csdn.net/qq_39736982/article/details/82656267原创 2020-02-25 11:37:05 · 253 阅读 · 0 评论 -
Qt文件QFile 和文件夹QDir
一、QFileInfo的简单用法参考链接:http://blog.sina.com.cn/s/blog_3e62c50d01013xd4.htmlQFileInfo的几个构造函数:QFileInfo( )QFileInfo( const QString &file)QFileInfo( const QFile &file)QFileInfo...原创 2020-02-14 17:06:03 · 1551 阅读 · 0 评论 -
QT 获取文件MD5值
/* 方法1 */ QFile theFile(fileNamePath); theFile.open(QIODevice::ReadOnly); QByteArray ba = QCryptographicHash::hash(theFile.readAll(), QCryptographicHash::Md5); theFile.close(); q...原创 2020-02-14 12:51:10 · 1347 阅读 · 0 评论 -
QT使用QDataStream输出二进制文件多四个字节
使用如下QDataStream方式输出二进制文件,文件头部多四个字节,代表文件大小,不管怎么都去不了;//写二进制文件QFile file("F:/1.rgb");if(!file.open(QIODevice::WriteOnly)){QMessageBox::critical(this,"Warning", "Can't open file for writing",QMessa...原创 2020-02-14 12:44:38 · 544 阅读 · 1 评论 -
Qt遍历串口以及串口操作
一、添加串口模块cmake中添加:#添加SerialPort模块 下面整句添加qt5_use_modules(${PROJECT_NAME} Core SerialPort)或者find_package( SerialPort)二、遍历串口/** * @brief枚举出所有的串口,并寻找出指定描述Description的串口,比如NDI导航头的serialPor...原创 2020-02-14 11:50:08 · 1817 阅读 · 0 评论 -
Qt二进制文件操作(读和写)详解(.stm和.dat文件)
除了文本文件之外,其他需要按照一定的格式定义读写的文件都称为二进制文件。每种格式的二进制文件都有自己的格式定义,写入数据时按照一定的顺序写入,读出时也按照相应的顺序读出。例如地球物理中常用的 SEG-Y 格式文件,必须按照其标准格式要求写入数据才符合这种文件的格式规范,读取数据时也需要按照格式定义来读出。Qt使用 QFile 和 QDataStream 进行二进制数据文件的读写:QFil...原创 2020-02-04 21:20:10 · 8986 阅读 · 0 评论 -
Qt读写文件(2种方式)实现详解
文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处 理而开发的,所以文件读写是应用程序开发的一个基本功能。文本文件是指以纯文本格式存储的文件,例如用QtCreator 编写的C++程序的头文件(上文件)和源程序文件(.cpp 文件)。HTML 和 XML 文件也是纯文本文件,只是其读取之后需要对内容进行解析之后再显示。Qt 提供了两种读写纯文本文件的...原创 2020-02-04 21:19:03 · 8887 阅读 · 0 评论 -
Qt Splash窗口设计
一般的大型应用程序在启动时会显示一个启动画面,即 Splash 窗口。Splash 窗口是一个无边对话框,一般显示一个图片,展示软件的信息。Splash 窗口显示时,程序在后台做一些比较耗时的启动准备工作,Splash 窗口显示一段时间后自动关闭,然后软件的主窗口显示出来。Qt有一个 QSplashScreen 类可以实现 Splash 窗口的功能,它提供了载入图片,自动设置窗口无边框效果等功...原创 2020-02-14 11:20:52 · 224 阅读 · 0 评论 -
Qt MDI及其使用方法
传统的应用程序设计中有多文档界面(Multi-document Interface,MDI)应用程序,Qt为设计 MDI 应用程序提供了支持。本节的实例 samp6_4 是一个 MDI 应用程序,程序运行效果如图 1 所示。图 1 MDI 应用程序实例 samp6_4 的运行时界面MDI 应用程序就是在主窗口里创建多个同类型的 MDI 子窗口,这些 MDI 子窗口在主窗口里显示,并...原创 2020-02-14 10:56:51 · 799 阅读 · 1 评论 -
Qt多窗口编程详解(不设置父类)
常用的窗体基类是 QWidget、QDialog 和 QMainWindow,在创建 GUI 应用程序时选择窗体基类就是从这 3 个类中选择。QWidget 直接继承于 QObject,是 QDialog 和 QMainWindow 的父类,其他继承于 QWidget 的窗体类还有 QSplashScreen、QMdiSubWindow 和 QDesktopWidget。另外还有一个类 QWin...原创 2020-02-14 10:46:08 · 1766 阅读 · 0 评论 -
QT配置ini文件的建立,读取,写入操作
一背景参考链接:https://blog.csdn.net/yaowangII/article/details/787330221ini文件介绍.ini文件是InitializationFile的缩写,即初始化文件。除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图...原创 2020-02-13 13:13:47 · 1358 阅读 · 0 评论 -
Qt自定义对话框及调用方法
在一个应用程序设计中,为了实现一些特定的功能,必领设计自定义对话框。自定义对话框的设计一般从 QDialog 继承,并且可以采用UI设计器可视化地设计对话框。对话框的调用一般包括创建对话框、传递数据给对话框、显示对话框获取输入、判断对话框单击按钮的返回类型、获取对话框输入数据等过程。本节将通过实例 samp6_2 来详细介绍这些原理。图 1 是实例 samp6_2 的主窗口,及其设置表格行列数...原创 2020-02-12 23:25:45 · 2109 阅读 · 0 评论 -
Qt 5种标准对话框及使用方法详解
Qt为应用程序设计提供了一些常用的标准对话框,如打开文件对话框、选择颜色对话框、信息提示和确认选择对话框、标准输入对话框等,用户无需再自己设计这些常用的对话框,这样可以减少程序设计工作量。在前面几章的实例中,或多或少地用到了其中的一些对话框。Qt 预定义的各标准对话框的类,及其主要静态函数的功能见表 1(由于输入参数一般较多,省略了函数的输入参数,只列出了函数的返回值类型)。表 1 Q...原创 2020-02-12 22:53:53 · 927 阅读 · 0 评论 -
Qt QTableView QStandardItemModel用法
QStandardItemModel 是标准的以项数据(item data)为基础的标准数据模型类,通常与 QTableView 组合成 Model/View 结构,实现通用的二维数据的管理功能。本节介绍 QStandardltemModel 的使用,主要用到以下 3 个类:QStandardItemModel:基于项数据的标准数据模型,可以处理二维数据。维护一个二维的项数据数组,每个项是一...原创 2020-02-13 11:39:18 · 3215 阅读 · 0 评论 -
Qt QListView QStringListModel用法详解
QStringListModel用于处理字符串列表的数据模型,它可以作为 QListView 的数据模型,在界面上显示和编辑字符串列表。QStringListModel 的 setStringList() 函数可以初始化数据模型的字符串列表的内容,stringList() 函数返回数据模型内的字符串列表,在关联的 ListView 组件里编辑修改数据后,数据都会及时更新到数据模型内的字符串列表...原创 2020-02-13 11:15:31 · 3795 阅读 · 0 评论 -
Qt QTreeView QFileSystemModel功能及用法详解
QFileSystemModel提供了一个可用于访问本机文件系统的数据模型。QFileSystemModel 和视图组件 QTreeView 结合使用,可以用目录树的形式显示本机上的文件系统,如同 Widnows 的资源管理器一样。使用 QFileSystemModel 提供的接口函数,可以创建目录、删除目录、重命名目录,可以获得文件名称、目录名称、文件大小等参数,还可以获得文件的详细信息。...原创 2020-02-13 11:03:41 · 2751 阅读 · 2 评论 -
Qt Model/View(模型/视图)结构
Model/View(模型/视图)结构是Qt中用界面组件显示与编辑数据的一种结构,视图(View)是显示和编辑数据的界面组件,模型(Model)是视图与原始数据之间的接口。GUI 应用程序的一个很重要的功能是由用户在界面上编辑和修改数据,典型的如数据库应用程序。数据库应用程序中,用户在界面上执行各种操作,实际上是修改了界面组件所关联的数据库内的数据。将界面组件与所编辑的数据分离开来,又通过...原创 2020-02-13 10:56:35 · 647 阅读 · 0 评论 -
Qt QTableWidget及基本操作(详解版)
QTableWidget 是Qt中的表格组件类。在窗体上放置一个 QTableWidget 组件后,可以在 Property Editor 里对其进行属性设置,双击这个组件,可以打开一个编辑器,对其 Colum、Row 和 Item 进行编辑。一个 QTableWidget 组件的界面基本结构如图 1 所示,这个表格设置为 6 行 5 列。图 1 一个 QTableWidget 表格的...原创 2020-02-12 13:33:24 · 16524 阅读 · 8 评论 -
Qt QTreeWidget和QDockWidget用法完全攻略(实例分析)
本节介绍QTreeWidget、QDockWidget的使用,以及用 QLabel 显示图片的方法。实例 samp4_8 QTreeWidget 以 QTreeWidget 为主要组件,创建一个照片管理器,实例运行时的界面如图 1 所示。图 1 实例Samp4_8运行时界面这个实例主要演示如下几个组件的使用方法。QTreeWidget 目录树组件:QTreeWidget 类是创建和...原创 2020-02-12 13:14:47 · 646 阅读 · 0 评论 -
Qt QListWidget和QToolButton用法详解(实例分析)
Qt中用于项(Item)处理的组件有两类,一类是 Item Views,包括 QListView、QTreeView、 QTableView、QColumnView 等;另一类是 Item Widgets,包括 QListWidget、QTreeWidget 和 QTable Widget。Item Views 基于模型/视图(Model/View)结构,视图(View)与模型数据(M...原创 2020-02-12 12:52:10 · 2554 阅读 · 0 评论 -
Qt QPlainTextEdit用法详解
QPlainTextEdit是一个多行文本编辑器,用于显示和编辑多行简单文本。另外,还有一个 QTextEdit 组件,是一个所见即所得的可以编辑带格式文本的组件,以 HTML 格式标记符定义文本格式。实例 samp4_6 演示 QPlainTextEdit(和QComboBox)的使用,其运行时界面如图 1 所示。图 1 实例运行界面从《QComboBox》一节中的代码实现己经...原创 2020-02-12 12:28:48 · 12667 阅读 · 2 评论 -
Qt QComboBox下拉框及用法(详解版)
QComboBox是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个 QLineEdit 用作输入。QComboBox 除了显示可见下拉列表外,每个项(item,或称列表项)还可以关联一个 QVariant 类型的变量,用于存储一ui->comboBox->clear();QStringList strList;strList<<"北京"&l...原创 2020-02-12 12:22:27 · 9979 阅读 · 0 评论 -
Qt定时器及实现(详解)
定时器是用来处理周期性事件的一种对象,类似于硬件定时器。例如设置一个定时器的定时周期为 1000 毫秒,那么每 1000 毫秒就会发射定时器的 timeout() 信号,在信号关联的槽函数里就可以做相应的处理。Qt中的定时器类是 QTimer。QTimer 不是一个可见的界面组件,在 UI 设计器的组件面板里找不到它。图 1 中的实例程序实现了一个计时器的功能,就是计算定时器开始到停止持续的时间...原创 2020-02-11 13:32:46 · 6781 阅读 · 0 评论 -
Qt获取当前时间(超详细)
时间日期是经常遇到的数据类型,Qt中时间日期类型的类如下:QTime:时间数据类型,仅表示时间,如15:23:13。 QDate:日期数据类型,仅表示日期,如2017-4-5。 QDateTime:日期时间数据类型,表示日期和时间,如2017-03-23 08:12:43。Qt 中有专门用于日期、时间编辑和显示的界面组件,介绍如下:QTimeEdit:编辑和显示时间的组件。 Q...原创 2020-02-11 13:03:47 · 5958 阅读 · 0 评论 -
Qt数值输入组件和显示组件用法详解
前面总结了 LineEdit 和 SpinBox 组件,其实还有其他一些用于数值输入和显示的组件。实例 samp4_4 演示如何使用这些组件,图 1 是实例 samp4_4 的设计界面:图 1 实例设计界面在这个实例中,用到如下一些组件:QSlider:滑动条,通过滑动来设置数值,可用于数值输入。实例中使用 4 个滑动条输入红、绿、蓝三色和 Alpha 值,然后合成颜色,作为一个 ...原创 2020-02-11 12:37:46 · 2319 阅读 · 0 评论 -
Qt QSpinBox使用详解
QSpinBox用于整数的显示和输入,一般显示十进制数,也可以显示二进制、十六进制的数,而且可以在显示框中增加前缀或后缀。QDoubleSpinBox用于浮点数的显示和输入,可以设置显示小数位数,也可以设置显示的前缀和后缀。实例 samp4_3 演示 QSpinBox 和 QDoubleSpinBox 这两个组件的使用,图 1 是程序运行界面,该程序使用 QSpinBox 和 QDou...原创 2020-02-11 12:26:08 · 4260 阅读 · 0 评论 -
Qt QString类及常用函数功能详解
QString 是Qt编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能。QString 存储字符串釆用的是 Unicode 码,每一个字符是一个 16 位的 QChar,而不是 8 位的 char,所以 QString 处理中文字符没有问题,而且一个汉字算作是一个字符。图 1 是对 QString ...原创 2020-02-11 11:58:57 · 285 阅读 · 0 评论 -
Qt字符串与数字之间的转换方法详解
Qt界面设计时使用最多的组件恐怕就是 QLabel 和 QLineEdit 了,QLabel 用于显示字符串,QLineEdit 用于显示和输入字符串。这两个类都有如下的两个函数用于读取和设置显示文字。QString text() constvoid setText(const QString &)这两个函数都涉及到 QString 类。QString 类是 Qt 程序里经常...原创 2020-02-11 11:35:55 · 4330 阅读 · 0 评论 -
Qt类库模块划分详解
Qt类库里大量的类根据功能分为各种模块,这些模块又分为以下几大类:Qt 基本模块(Qt Essentials):提供了 Qt 在所有平台上的基本功能。 Qt 附加模块(Qt Add-Ons):实现一些特定功能的提供附加价值的模块。 增值模块(Value-AddModules):单独发布的提供额外价值的模块或工具。 技术预览模块(Technology Preview Modules):一...原创 2020-02-11 11:04:34 · 522 阅读 · 0 评论 -
Qt迭代器(Java类型和STL类型)详解
迭代器为访问容器类里的数据项提供了统一的方法,Qt有两种迭代器类:Java类型的迭代器和STL类型的迭代器。两者比较,Java 类型的迭代器更易于使用,且提供一些高级功能,而 STL 类型的迭代器效率更高。Java 类型迭代器对于每个容器类,有两个 Java 类型迭代器:一个用于只读操作,一个用于读写操作,各个Java 类型的容器类见表 1。表 1 Java类型...原创 2020-02-11 10:21:38 · 210 阅读 · 0 评论 -
Qt foreach关键字用法
Qt提供一个关键字 foreach (实际是 <QtGlobal> 里定义的一个宏)用于方便地访问容器里所有数据项。foreach 关键字用于遍历容路中所有的项,使用 foreach 的句法是:foreach (variable, container)使用 foreach 的代码比使用迭代器更简洁。例如,使用 foreach 遍历一个QLinkedList<QSt...原创 2020-02-06 12:33:13 · 236 阅读 · 0 评论 -
Qt顺序容器类和关联容器类详解
Qt提供了多个基于模板的容器类,这些容器类可以用于存储指定类型的数据项,例如常用的字符串列表类 QStringList 就是从容器类 QLiSt<QString> 继承的,实现对字符串列表的添加、存储、删除等操作。Qt 的容器类比标准模板库(STL)中的容器类更轻巧、安全和易于使用。这些容器类是隐式共享和可重入的,而且它们进行了速度和存储优化,因此可以减少可执行文件的大小。此外...原创 2020-02-06 12:12:46 · 459 阅读 · 0 评论 -
Qt数据类型、全局变量、全局函数和宏定义详解
<QtGlobal> 头文件包含了 Qt 类库的一些全局定义,包括基本数据类型、函数和宏,一般的 Qt 类的头文件都会包含该文件,所以不用显式包含这个头文件也可以使用其中的定义。全局变量、数据类型定义为了确保在各个平台上各数据类型都有统一确定的长度,Qt 为各种常见数据类型定义了类型符号,如 qint8 就是 signed char 的类型定义,即:typedef sig...原创 2020-02-06 11:51:59 · 1411 阅读 · 0 评论