![](https://img-blog.csdnimg.cn/dda5b8a5d9ec490da30c70a98be74439.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
QT
文章平均质量分 86
QT
霸道小明
种一棵树最好的时间是十年前,其次是现在。如果你十年前没有种,那就现在种。
展开
-
QString、QLatin1String、QStringLiteral
但是,函数只接受QString参数的函数时,无论我们给一个字面字符串或QLatin1String,都会隐式构造一个临时的QString对象,构造这个对象需要在栈上申请一定的内存空间,然后把字符串拷贝过去,如果这样的调用比较多,那还是一笔不小的开销。它将字符串传递给函数时,宏在编译时,从字符串文字生成QString数据,QString的内部数据将在编译时生成,在运行时不会发生任何转换或内存分配,使用QStringLiteral来代替C++中的双重数值传递将会在编译的时候显著的提升时间。原创 2023-01-08 16:54:05 · 789 阅读 · 1 评论 -
Qt—QPainter基本图形绘制详解
1、QPainter 类在小部件和其他绘制设备上执行低级绘制。2、QPainter 提供了高度优化的功能来完成大多数图形GUI程序所需的工作。它可以画从简单的线条到复杂的形状。它还可以绘制对齐的文本和像素图。QPainter 可以对继承 QPaintDevice 类的任何对象进行操作。3、QPainter 与 QPaintDevice 和 QPaintEngine 类一起构成了Qt绘制系统的基础:QPainter 是用于执行绘图操作的类。QPaintDevice 表示可以使用 QPainter 在其上绘制的原创 2023-01-07 22:46:46 · 6047 阅读 · 2 评论 -
Qt—事件处理
Qt中,事件作为一个对象,继承自QEvent类,常见的有键盘事件QKeyEvent、鼠标事件QMouseEvent和定时器事件QTimerEvent等。Qt中,任何QObject子类示例都可以接收和处理事件。实际编程中通常实现部件的paintEvent()、mousePressEvent()等事件处理函数来处理特定部件的特定事件。每个程序的main函数最后都会调用QApplication类的exec()函数,它会使Qt应用程序进入到事件循环,使应用程序在运行的时候接收各种事件。原创 2023-01-06 11:15:23 · 640 阅读 · 0 评论 -
QT—QPalette调色板类
Qt提供的调色板类QPalette专门用于管理部件的外观显示,相当于部件或对话框的调色板,管理他们所有的颜色信息。每个部件都包含一个QPalette对象,在显示时,按照它的QPalette对象中对各部分各状态下的颜色的描述进行绘制。原创 2023-01-06 11:03:55 · 1053 阅读 · 0 评论 -
Qt样式表语法
使用样式表时,每个部件被看作拥有4个同心矩形的的盒子,四个矩形的内容分别为内容(content)、填衬(padding)、边框(border)、边距(margin)。此例中QPushButton#okButton代表的是单一对象,而不是一个类的所有实例,所以okButton的文本颜色会是灰色的。部件有效的样式表示通过部件的祖先样式表和QApplication上的样式表合并得到的,对于一些复杂的部件修改样式,可能需要访问它们的子部件,如QComboBox的下拉按钮,QSpinBox的向上、向下箭头灯。原创 2023-01-03 15:55:12 · 782 阅读 · 0 评论 -
QT部件透明阴影效果与不规则窗体
在页面布局中添加一个Label标签用来显示图片,应用程序大小设置成与图片大学校一致。方法,传入一个0~1之间的值来表示透明度;1表示不透明,0表示完全透明。在构造函数中初始化,通过setMask( )方法设置遮罩。重写printEvent( )方法,将图片绘制到应用程序上。之后设置窗体透明,部件不透明时就可以出现窗体班透明效果。将准备好的小黄人png图片添加到项目资源中。需要重写paintEvent( )方法。将窗体外形设置成小黄人形状。设置窗体透明,部件不透明。设置整个窗体透明,调用。原创 2023-01-06 11:26:11 · 1226 阅读 · 3 评论 -
QT—5种标准对话框使用详解
对话框是 GUI 程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件都必须放在对话框中设置。对话框通常会是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同。Qt常用的内置对话框有QFileDialog、QColorDialog、QFontDialog、QInputDialog和QMessageBox。原创 2022-12-17 19:27:01 · 9011 阅读 · 1 评论 -
QT—常用容器 QStringList,QVector,QMap,QHash,QVariant
QMap与QHash差别:①QHash比QMap查找速度更快。②QHash以任意顺序存储,QMap以Key顺序存储数据。③QHash的Key必须提供operator==()及一个全局的qHash(Key)函数,而QMap的Key必须提供operator原创 2022-12-15 09:35:04 · 3460 阅读 · 0 评论 -
QT—QList与QLinkedList类的常用方法
QList维护了一个指针数组,数组元素指向每一个链表项,因此QList 提供了基于下标的快速访问。QLinkedList是一个链式列表,不能使用下标访问,与QList相比,当对一个很大的列表进行插入操作时,QLinkedList更高效。原创 2022-12-14 10:35:14 · 3578 阅读 · 0 评论 -
QT—QString类
隐式数据共享机制去最大化资源有效利用和最小化复制克隆操作。隐式共享类当作为函数参数传递的时候,不仅安全而且效率很高,因为传递的时候只是传递的数据的指针,数据本身只当自己被修改的时候才会去复制。简称写时复制。数据相同时,执行浅拷贝,仅复制指向数据块的指针,数据不同时则执行深拷贝。隐式共享技术可以大大降低对内存的开销及CPU资源的消耗,很大程度提高应用程序的运行效率。QString类采用16位的Unicode值(两字节)保存数据,Unicode把所有语言都统一到一套编码里,Unicode提供、、原创 2022-12-13 16:04:37 · 1441 阅读 · 0 评论 -
QT—常用窗口部件
QWidget类是所有部件对象的基类,被称为基础窗口部件,继承关系详看QWidget类关系图。QWidget提供自我绘制和处理用户输入等基本功能,如接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。一个没有父窗口部件的窗口部件一直是顶级窗口部件。非顶级窗口部件是父窗口的子部件。原创 2022-12-12 09:15:36 · 1032 阅读 · 0 评论 -
QT对象树机制
Qt提供了对象树机制,能够自动、有效的组织和管理继承自QObject的Qt对象。每个继承自QObject类的对象通过它的对象链表(QObjectList)来管理子类对象,当用户创建一个子对象时,其对象链表相应更新子类对象信息,对象链表可通过children()获取。当父对象析构的时候,其对象链表中的所有(子)对象也会被析构,父对象会自动将其从父对象列表中删除。Qt 保证没有对象会被 delete 两次。开发中手动回收资源时建议使用deleteLater代替delete,因deleteLater多次是安全的,原创 2022-12-04 21:10:16 · 1077 阅读 · 0 评论 -
QT部件基类——QWidget与QDialog
parent即父窗口,默认为0,即没有父窗口,是顶级窗口,如果指定parent值则当前窗体将会是一个子部件。Qt::WindowFlags是Qt::WindowType枚举值的组合,用来设置窗口的属性,f = 0表默认为Qt::Widget风格,其余窗口属性详见下表。也就是说若一些部件拉伸因子大于0,而一些部件拉伸因子为0,则只有拉伸因子大于0的部件会被拉伸,而拉伸因子为0的部件不会被拉伸。QWidget构造函数的默认值,如果新的窗口部件没有父窗口部件,则它是一个独立的窗口,否则就是一个子窗口部件。原创 2022-09-22 16:31:52 · 5130 阅读 · 2 评论 -
QT—动态属性系统
调用动态属性写函数将属性赋值为“1000个”,属性值被更改就会发送了maskChanged信号,我们又在Widget程序中将一个槽方法与该信号连接,在槽方法中输出修改的属性值。一个属性可以使用常规函数QObject::property()和QObject::setProperty()进行读写,不用知道属性所在类的任何细节,除了属性的名字。可选,NOTIFY 后面跟该类中已经定义的一个信号函数,只要该属性的值发生更改,就会发出该信号。可选,FINAL表示属性不会被派生类覆盖,在某些情况下,这可用于性能优化。原创 2022-09-10 20:31:57 · 2704 阅读 · 3 评论 -
QT—信号与槽详解
信号与槽(Signal & Slot)是编程的基础,也是 Qt 的一大创新。因为有了信号与槽的编程机制,在 Qt 中处理界面各个组件的交互操作时变得更加直观和简单。信号(Signal)就是在特定情况下被发射的事件,例如PushButton 最常见的信号就是鼠标单击时发射的 clicked() 信号。发射信号使用Qt的emit关键字QT 的 signals 关键字指出进入了信号声明区,随后即可声明自己的信号。定义信号,如:发射信号,如:槽(Slot)就是对信号响应的函数。槽就是一个函数,与一般的。原创 2022-09-10 17:04:41 · 14688 阅读 · 1 评论 -
QT信号与槽连接(松耦合)
信号与槽(Signal & Slot)是Qt编程的基础,也是 Qt 的一大创新。因为有了信号与槽的编程机制,在 Qt 中处理界面各个组件的交互操作时变得更加直观和简单。信号(Signal)就是在特定情况下被发射的事件,例如PushButton 最常见的信号就是鼠标单击时发射的 clicked() 信号。发射信号使用Qt的emit关键字。QT 的 signals 关键字指出进入了信号声明区,随后即可声明自己的信号。......原创 2022-07-25 13:43:15 · 469 阅读 · 2 评论 -
QT驾校科目考试系统——从实现到发布
Qt 是一个跨平台的 C++ 框架(C++库),目前最新的版本是 Qt5。Qt5 还包含了很多小版本,其中推荐 Qt5.6 或 Qt5.9,这两个版本是 LTS 版本(即长期支持版本),Bug较少,相对稳定。Qt 除了支持界面设计(GUI编程),还封装了与网络编程、多线程、数据库连接、视频音频等相关的功能。这套 Qt 教程以 Qt 5.9 为基础来介绍 Qt 开发,配有精美的图片以及完整的示例程序,几乎涉及 Qt 编程的所有模块。...原创 2022-07-20 21:00:26 · 1147 阅读 · 3 评论