
Qt 实战
文章平均质量分 80
Qt 实战
一个不务正业的程序猿
这个作者很懒,什么都没留下…
展开
-
Qt 实战(11)样式表 | 11.3、优秀博客
https://www.cnblogs.com/zhuchunlin/p/16485890.html原创 2024-10-20 22:18:59 · 144 阅读 · 0 评论 -
Qt 实战(11)样式表 | 11.2、使用样式表
在Qt框架中,样式表(Style Sheets)是一种功能强大的工具,它允许开发者以一种简洁而高效的方式自定义应用程序的用户界面。Qt样式表借鉴了Web开发中CSS的概念,使得开发者能够轻松调整组件的外观,包括颜色、字体、边框、边距等。本文将详细介绍如何使用Qt样式表来美化应用程序界面。原创 2024-10-20 22:16:27 · 1348 阅读 · 0 评论 -
Qt 实战(11)样式表 | 11.1、样式表简介
Qt样式表是一种类似于层叠样式表(Cascading Style Sheets, CSS)的声明性语言,它允许开发者通过简单的规则来定义Qt控件的外观和布局。这些规则可以应用于单个控件,也可以应用于整个应用程序的所有控件,从而实现一致且吸引人的用户界面。原创 2024-10-18 17:43:38 · 2086 阅读 · 0 评论 -
Qt 实战(10)模型视图 | 10.7、自定义 QTableWidget
关键点:内容变更时,外界如何感知到?需要注意的点:更新模型数据时,如果不需要触发本身的信号,模型需要屏蔽信号关键点:单击按键时,如何判断点击那个cell对应的按键原创 2024-10-31 16:58:58 · 838 阅读 · 0 评论 -
Qt 实战(10)模型视图 | 10.6、自定义 QTableView
模型中存储表格要显示的数据,要自定义一个,需要从该类派生一个新的类,并在其中实现一些关键的方法。这些方法定义了模型如何与表格视图交互,包括数据的获取、行列的数量、数据项的修改等。public:// 必须要实现的基类虚函数// 选择实现的虚函数private:// 自定义方法private:如果需要自定义单元格的渲染或编辑方式,可以创建一个自定义的代理类。委托类通常继承自或。原创 2024-10-30 10:57:51 · 499 阅读 · 0 评论 -
Qt 实战(10)模型视图 | 10.5、代理
和。是的改进版,提供了更好的样式支持,能够与平台的外观和感觉保持一致,因此通常推荐使用。使用代理时要创建一个继承自// 创建编辑器:当用户触发编辑行为时,代理负责创建并返回相应的编辑器控件(如QLineEdit、QSpinBox、QComboBox等)。// 设置编辑器数据:代理从模型中获取数据,并将其加载到编辑器中,以便用户进行编辑。// 更新模型数据:用户完成编辑后,代理负责将编辑器中的数据提交回模型。// 自定义绘制:代理可以自定义单元格的绘制方式,包括背景颜色、文本布局等。原创 2024-10-30 18:31:45 · 1420 阅读 · 0 评论 -
Qt 实战(10)模型视图 | 10.4、模型角色
在Qt的模型/视图架构中,模型中的每个数据元素都不仅仅包含数据本身,还包含多种角色(Role)。角色可以理解为数据项中保存的属性或样式的类别,可以将其视为键-值对中的键,用于存储和检索数据的不同方面。Qt通过提供丰富的角色来支持数据的多样化表示和编辑。原创 2024-09-14 09:59:02 · 725 阅读 · 0 评论 -
Qt 实战(10)模型视图 | 10.3、模型数据索引
模型数据索引,在Qt中通常通过类表示,是访问模型中数据项的一种方式。每个对象都包含了对特定数据项的临时引用,这个引用包含了行号、列号以及父项的索引信息。通过这种方式,视图(View)和委托(Delegate)能够请求并显示模型(Model)中的数据,而无需关心数据在底层的具体存储方式。原创 2024-09-14 09:35:29 · 900 阅读 · 0 评论 -
Qt 实战(10)模型视图 | 10.2、模型
一、原创 2024-09-04 09:28:45 · 542 阅读 · 0 评论 -
Qt 实战(10)模型视图 | 10.1、MVD 详解
介绍MVD之前,先介绍下MVC设计模式。MVC是一种与用户界面相关的设计模式,通过使用该设计模式,可以有效的分离数据与用户界面。MVC设计模式包含三个元素:表示数据的模型(Model)、表示用户界面的视图(View)和定义了用户在界面上操作的控制器(Controller)用户看到并与之交互的界面(例如:网页界面或软件的客户端界面),负责显示模型中的数据。指从现实世界中抽象出来的对象模型,它封装了数据和对数据的操作,是实际进行数据处理的地方。原创 2024-09-02 09:41:15 · 967 阅读 · 0 评论 -
Qt 实战(9)窗体 | 9.2、QDialog
QDialog是Qt中创建对话框的强大工具,通过它,可以轻松地实现各种复杂的用户交互场景。无论是简单的消息提示还是复杂的配置窗口,QDialog都能满足需求。原创 2024-08-09 17:50:54 · 1288 阅读 · 0 评论 -
Qt 实战(9)窗体 | 9.1、QWidget
QWidget是Qt中所有用户界面对象的基类,包括窗口、对话框、按钮、文本框等。它封装了窗口系统的很多特性,如大小、位置、显示状态等,并提供了一系列用于这些特性的方法和信号槽。通过继承QWidget,开发者可以创建自定义的用户界面元素。QWidget是Qt框架中不可或缺的一部分,它为开发者提供了构建复杂GUI的强大工具和灵活机制。通过深入理解和掌握QWidget及其相关类,开发者可以创建出功能丰富、界面美观的桌面应用程序。原创 2024-08-05 11:16:27 · 1165 阅读 · 0 评论 -
Qt 实战(8)控件 | 8.1、QComboBox
QComboBox继承自QWidget,它结合了(列表显示)和(按钮点击)的功能,提供了一个下拉式的选择框。用户可以通过点击下拉箭头来查看所有可用的选项,并通过点击列表中的某个项目来选中它。QComboBox是 Qt 框架中一个功能强大且易于使用的控件,它为开发者提供了一种方便的方式来让用户从一组预定义的选项中进行选择。通过添加、移除选项,设置当前选中项,以及响应选项变化等操作,QComboBox可以轻松地集成到各种复杂的界面设计中,提升用户体验。无论是简单的应用程序还是复杂的系统,QComboBox。原创 2024-08-01 18:01:50 · 460 阅读 · 0 评论 -
Qt 实战(7)元对象系统 | 7.7、QMetaMethod详解
综上所述,是Qt框架中一个非常强大的工具,它提供了丰富的接口来获取和操作QObject派生类中成员函数的元信息,并支持动态调用。通过合理使用,你可以开发出更加灵活和动态的应用程序。原创 2024-07-27 16:45:17 · 566 阅读 · 0 评论 -
Qt 实战(7)元对象系统 | 7.6、Q_DECLARE_METATYPE详解
在Qt中,要在QVariant中使用自定义结构体(或类),你需要遵循几个步骤来确保这些类型能够被QVariant正确地处理。这通常涉及到使用宏来声明你的类型,并在某些情况下(特别是当类型需要在不同的线程之间传递时),还需要使用函数来注册你的类型。以下是一个完整的示例,展示了如何在QVariant中使用自定义结构体Person步骤一: 定义自定义结构体并声明为元类型#include <QMetaType> // 必须包含这个头文件int age;// 构造函数(可选)原创 2024-07-22 22:55:47 · 2672 阅读 · 0 评论 -
Qt 实战(7)元对象系统 | 7.5、QMetaProperty详解
Qt的动态属性(Dynamic Properties)是Qt框架中一个非常有用的特性,它允许在运行时动态地获取和设置对象的属性。这个特性基于Qt的元对象系统(Meta-Object System),可以让我们以一种统一的方式访问和操作对象的各种属性,而无需关心这些属性的具体实现。动态属性的主要优势在于它的灵活性和可扩展性。通过使用动态属性,我们可以在不修改类定义的情况下,为类添加新的属性。这对于一些需要频繁修改或扩展的场景非常有用,比如插件系统、用户界面组件等。在Qt中,动态属性是通过QObject。原创 2024-07-22 15:23:44 · 1741 阅读 · 0 评论 -
Qt 实战(7)元对象系统 | 7.4、属性系统:深度解析与应用
在QObject的子类中,你可以使用Q_PROPERTY宏来定义属性。[CONSTANT][FINAL])其中,type是属性的数据类型,name是属性的名称,是读取属性值的函数,是设置属性值的函数,是属性值变化时发出的信号等。假设我们有一个Person类,需要为其添加一个名为ageQ_OBJECTpublic:if (m_age!原创 2024-07-19 15:47:35 · 899 阅读 · 0 评论 -
Qt 实战(7)元对象系统 | 7.3、QMetaObject详解
是Qt框架中的一个核心组件,它实际上是一个存储在静态数据区的结构,包含了类的名称、属性、方法、信号、槽以及其他与类相关的元数据。在C++的标准环境中,我们通常无法在运行时获取类的元信息,因为大部分信息在编译时已经丢失。然而,Qt通过其独特的元对象编译器(Meta Object Compiler, MOC)解决了这一问题。MOC会预处理Qt类的定义,生成一个包含类元信息的QMetaObject实例,这个实例会在运行时被Qt框架使用。原创 2024-07-16 15:46:12 · 1963 阅读 · 0 评论 -
Qt 实战(7)元对象系统 | 7.2、MOC(Meta-Object Compiler 元对象编译器)
在Qt框架中,MOC(Meta-Object Compiler)是一个至关重要的工具,它负责处理Qt特有的元对象系统(Meta-Object System)的相关代码。MOC是一个预处理器,它扫描包含。原创 2024-07-04 17:39:09 · 1301 阅读 · 0 评论 -
Qt 实战(7)元对象系统 | 7.1、简介
元对象系统是 Qt 对原有的 C++进行的一些扩展,主要是为实现信号和槽机制而引入的,信号和槽机制是 Qt 的核心特征。要使用元对象系统的功能,需要满足以下三个条件类继承自QObject:要使用元对象系统的功能,类必须继承自QObject类。QObject类为Qt对象提供了一个基类,提供了对象树结构管理、事件处理等基础功能。声明Q_OBJECT宏:在类的声明中,必须包含Q_OBJECT宏。这个宏通常放在类的私有部分,用于启用元对象特性,如动态属性、信号和槽等。MOC会处理这个宏,生成元对象代码。原创 2024-07-04 17:05:43 · 1263 阅读 · 0 评论 -
Qt 实战(6)事件 | 6.3、自定义事件
首先,你需要为你的自定义事件定义一个唯一的事件类型。Qt 允许你使用枚举值来区分不同的事件类型。由于 Qt 的内置事件类型已经很多,你需要从函数获取一个唯一的事件类型标识符。// 定义一个全局的变量来存储自定义事件类型。原创 2024-07-18 22:53:34 · 770 阅读 · 1 评论 -
Qt 实战(6)事件 | 6.2、事件过滤器
事件过滤器是Qt提供的一种特殊机制,允许对象(过滤器)在事件到达最终接收者之前截获事件。通过事件过滤器,开发者可以实施一些全局的事件处理逻辑,比如实现全局的鼠标手势识别、键盘快捷键等。事件过滤器在Qt中提供了一个非常灵活的机制,允许开发者实现一些全局的事件处理逻辑,或者在某些特定情况下提前拦截和处理事件。通过合理利用事件过滤器,可以大大增强应用程序的交互能力和响应性。原创 2024-06-26 15:03:19 · 796 阅读 · 0 评论 -
Qt 实战(6)事件 | 6.1、事件机制
Qt 框架中的事件机制(Event Mechanism)是一种核心功能,它允许应用程序以事件驱动的方式响应各种外部和内部发生的动作。事件机制在 Qt 中扮演着至关重要的角色,无论是在用户界面的交互还是在后台处理数据时。它不仅确保了程序的响应性和灵活性,还大大降低了编程的复杂性,使开发者能够以更直观的方式来处理异步事件。原创 2024-06-25 18:01:38 · 1002 阅读 · 0 评论 -
Qt 实战(5)布局管理器 | 5.2、深入解析Qt布局管理器
Qt布局管理器是创建灵活和可适应不同设备和分辨率的用户界面的关键工具。通过合理地使用不同类型的布局管理器、嵌套布局、间距和对齐方式以及测试不同环境,开发人员可以创建出功能完善且易于使用的用户界面。希望本文能帮助您更深入地了解Qt布局管理器并为您的开发工作提供有用的指导。原创 2024-06-18 23:04:09 · 1201 阅读 · 0 评论 -
Qt 实战(5)布局管理器 | 5.1、DPI对布局的影响
DPI(Dots Per Inch,每英寸点数或像素数)可以简单地理解为每英寸有多少像素。例如,一个分辨率为160×128的屏幕意味着水平方向上有160个像素,垂直方向上有128个像素。DPI越高,屏幕显示的清晰度就越高。在Qt程序中,DPI的设置会影响字体、图片等元素的显示大小。如果DPI设置得较高,那么字体和图片等元素在屏幕上就会显得更大。DPI是影响Qt应用程序布局的重要因素之一。为了优化布局以适应不同DPI的环境,可以使用布局管理器、响应式布局等方法。原创 2024-06-18 22:46:31 · 716 阅读 · 0 评论 -
Qt 实战(4)信号与槽 | 4.4、屏蔽信号
Qt的信号屏蔽机制为开发者提供了一种灵活且强大的工具,用于在需要时精确控制信号的发送。通过使用方法和类,我们可以轻松地在特定时间段内屏蔽对象的信号,从而避免不必要的槽函数调用。这不仅有助于优化程序的性能,还能简化代码逻辑,提高代码的可读性和可维护性。原创 2024-07-29 09:47:29 · 865 阅读 · 0 评论 -
Qt 实战(4)信号与槽 | 4.3、信号连接信号
信号连接信号,顾名思义,就是将一个对象的信号连接到另一个对象的信号上。当第一个对象的信号被发射时,它会触发第二个对象的信号发射,而不直接调用某个槽函数。这种机制在某些场景下非常有用,尤其是当你需要在多个对象之间传递事件或状态时。信号连接信号是Qt信号与槽机制的一种高级用法,它允许我们将一个对象的信号连接到另一个对象的信号上。这种机制在某些场景下提供了更多的灵活性和控制力,特别是在需要在多个对象之间传递事件或状态时。原创 2024-06-16 22:07:03 · 816 阅读 · 0 评论 -
Qt 实战(4)信号与槽 | 4.2、自定义信号与槽
在Qt中,自定义信号通常在一个继承自QObject或其子类的类中进行。自定义信号在类声明中以signals关键字开头,并且没有返回类型,但可以有任意数量的参数。信号本身不实现任何功能,它们只是用于在对象之间传递事件。Q_OBJECTpublic:// ... 其他成员函数 ...signals:// 自定义信号,带一个int类型参数// 注意:信号没有实现体(即没有函数体),且返回类型为void在上面的代码中,MyObject类继承自QObject,并声明了一个名为mySignal。原创 2024-06-16 21:49:25 · 798 阅读 · 0 评论 -
Qt 实战(4)信号与槽 | 4.1、信号与槽机制
Qt信号与槽机制是一种用于处理对象间通信的强大机制,它是Qt框架的核心特性之一。信号与槽机制使得Qt对象可以在不了解彼此的情况下进行通信,这种松耦合的设计思想极大地提高了代码的可重用性和灵活性。原创 2024-06-12 22:56:10 · 1308 阅读 · 0 评论 -
Qt 实战(3)数据类型 | 3.3、QString
QString是 Qt 框架中用于处理Unicode字符串的一个非常强大且灵活的类。它提供了丰富的功能来操作文本数据,包括字符串的拼接、查找、替换、分割、转换以及国际化支持等。在 Qt 应用程序中,QString是处理文本的首选方式,因为它能够高效地处理Unicode字符,并且与 Qt 的其他部分紧密集成。下面将详细介绍QString的一些基本用法。原创 2024-07-25 17:31:09 · 636 阅读 · 0 评论 -
Qt 实战(3)数据类型 | 3.2、QVariant
如果要存储自定义类型,需要先使用宏声明,然后通过setValue()// 存储自定义类型注意:QVariant通过构造函数不能直接存储自定义类型。对于自定义类型,需要先使用宏进行声明,然后可以使用setValue()方法将自定义类型的数据存储到QVariant对象中。QVariant是Qt中一个功能强大的类,它提供了一种通用的方式来存储和转换不同类型的数据。通过QVariant,Qt开发者可以更加灵活地处理数据,特别是在需要动态处理多种数据类型的场合。掌握QVariant。原创 2024-07-24 17:46:03 · 800 阅读 · 0 评论 -
Qt 实战(3)数据类型 | 3.1、QByteArray
文章目录一、QByteArray一、QByteArray原创 2024-05-07 09:00:55 · 644 阅读 · 0 评论 -
Qt 实战(2)搭建开发环境 | 2.4、查看 Qt 源码
Qt 是一个跨平台的 C++ 图形用户界面应用程序开发框架,广泛应用于开发 GUI 程序以及非 GUI 程序,如控制台工具和服务器。查看 Qt 的源码不仅可以帮助你深入理解其工作机制,还能让你在遇到问题时快速定位并解决问题,甚至为 Qt 贡献自己的改进。下面将介绍如何查看 Qt 的源码。原创 2024-08-01 18:02:29 · 574 阅读 · 0 评论 -
Qt 实战(2)搭建开发环境 | 2.3、qmake详解
Qt qmake 是一个强大的工具,它简化了 Qt 应用程序和库的编译过程。通过编写项目文件,qmake 能够自动生成适合当前平台的 Makefile,从而大大减少了手动编写 Makefile 的工作量。掌握 qmake 的基本用法和高级特性,将有助于你更高效地开发 Qt 应用程序。原创 2024-07-10 22:51:32 · 1927 阅读 · 0 评论 -
Qt 实战(2)搭建开发环境 | 2.2、.pro文件详解
pro文件在Qt项目中扮演着至关重要的角色。它不仅是项目的配置文件,还是实现自动化编译和跨平台开发的关键。通过合理编写.pro文件,开发者可以高效地管理和编译Qt项目。原创 2024-07-10 23:00:26 · 905 阅读 · 0 评论 -
Qt 实战(2)搭建开发环境 | 2.1、Qt 安装与配置
安装Qt是一个相对简单的过程,只需按照上述步骤操作即可。安装完成后,你可以通过Qt Creator来开发和管理你的Qt项目。Qt的强大功能和跨平台特性将帮助你更高效地完成软件开发任务。如果你在使用过程中遇到任何问题,可以查阅Qt的官方文档或寻求社区的帮助。原创 2024-07-29 22:44:32 · 913 阅读 · 0 评论 -
Qt 实战(1)Qt 概述
Qt(官方发音 [kju:t],音同 cute)是一个的 C++ 开发库,主要用来开发,也可以开发不带界面的命令行(Command User Interface,CUI)程序。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。原创 2024-04-16 19:48:56 · 706 阅读 · 0 评论