自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

简介

这个人很懒什么都没有留下

  • 博客(41)
  • 资源 (8)
  • 收藏
  • 关注

原创 Qt 拖放功能详解:理论与实践并举的深度指南

Qt 框架提供了完善的拖放支持,允许开发者在应用程序中轻松实现这一功能。本篇博文将详细阐述Qt拖放机制的工作原理,结合详细的C++示例代码,助您全面掌握并熟练运用这一关键技术。对象,以及重写拖放事件处理器,您可以在各种场景下实现灵活、高效的拖放操作。文中提供的C++示例代码展示了基本的文本拖放实现,实际应用中可根据需求扩展以支持更丰富的数据类型、复杂的拖放逻辑及自定义视觉效果。Qt框架提供的拖放支持,使得开发者能够轻松地在应用程序中实现这一强大的交互功能。方法,为用户提供拖放操作是否被接受的视觉反馈。

2024-04-18 00:47:12 898

原创 详解QUndoStack的使用--实现撤销/返撤销(恢复/重做)功能

Qt 框架为此提供了一个强大的工具——QUndoStack,它简化了撤销/重做系统的实现,使得开发者能够高效、优雅地将这一功能集成到自己的应用程序中。QUndoStack 是 Qt 中实现撤销/重做功能的强大工具。

2024-04-17 17:53:42 933

原创 详解QSettings的使用

在Qt应用程序开发中,QSettings类 为开发者提供了一种统一且跨平台的方式来存储和检索应用程序的配置信息。无论是在Windows下写入注册表,还是在Unix-like系统中操作INI文件,QSettings都能确保数据持久化过程的便捷与高效。在这个示例中,我们创建了一个QSettings实例,并在窗口初始化时从其中加载先前保存的尺寸和位置。同时,连接了窗口状态变化、移动和调整大小的信号,以便在这些事件发生时自动更新存储的设置。只需使用相同的组织名称和应用程序名,即可在不同系统上读取到对应的数据。

2024-04-15 23:45:21 864

原创 详解QDockWidget的使用

在Qt应用程序界面设计中,QDockWidget是一种灵活且强大的组件,它允许开发者将独立的窗口区域(如工具栏、属性面板等)停靠在主窗口的边缘,或者作为浮动窗口显示。QSettings通常用于保存应用程序的设置和状态,这里用于存储窗口布局信息。通过QDockWidget和相应的布局保存与恢复功能,Qt应用程序能够更好地满足用户的个性化需求和界面偏好,从而提高整体用户体验。Qt提供了一种机制,允许开发者保存当前的QMainWindow及其包含的QDockWidget布局信息,并在后续运行时恢复这些布局。

2024-04-15 21:42:45 385

原创 详解QDir类的使用

是 Qt 框架中用于操作文件和目录的类,它提供了跨平台的文件系统访问接口,可以进行目录遍历、文件查找、创建、删除、移动等操作。提供的各种方法进行文件系统操作。如果需要更复杂的功能,如深度优先或广度优先遍历目录树,可以结合使用。类的基本操作,包括目录创建、查询、文件操作等。在实际项目中,您可以根据具体需求灵活运用。

2024-04-15 20:00:00 191

原创 详解QMenu类的使用

是 Qt 框架中的一个类,用于创建弹出式菜单,常用于应用程序的右键上下文菜单、工具栏按钮下拉菜单、主菜单栏等场景。的基础使用和一些进阶功能,包括创建菜单、添加菜单项、设置属性、关联信号与槽以及查询菜单项状态等。

2024-04-14 17:03:23 232

原创 详解QCalendarWidget的使用

它允许用户直观地浏览和选择日期,广泛应用于日程管理、任务调度、生日提醒等需要日期交互的应用场景。显示一个标准的网格状日历,包含星期标题、日期单元格以及可选的网格线。日期单元格可以显示标记,表示特殊日期或事件。:用户可以通过鼠标点击或键盘导航在日历中选择日期。,可以在特定日期上添加文字标签或自定义小部件,用于标记特殊事件或状态。(单击日期时发出)等,可以与自定义槽函数连接,实现日期选择的响应逻辑。),限制用户可以选择的日期范围。:可以设置日历的最小日期((选择日期变化时发出)、)来定制日历的外观。

2024-04-14 00:13:10 227

原创 详解QActionGroup类的使用

主要用于实现互斥选择(即单选)或多选(即复选)的行为,特别是在菜单、工具栏或上下文菜单中,当存在一系列相互排斥或相关联的操作选项时,使用。的非独占模式(默认状态),允许多个动作同时处于选中状态,类似复选框(check box)的行为。,可以确保同一时间内只有一个动作处于选中状态,类似单选按钮(radio button)的行为。设置为互斥选择模式,每次只能有一个颜色被选中,选择新的颜色会自动取消之前的选择。信号,分别在动作被触发(如点击菜单项)和鼠标悬停时发射,便于集中处理相关动作的行为。

2024-04-12 23:42:03 321

原创 详解QAction的使用

对象封装了操作的基本属性(如文本、图标、快捷键等)以及行为(如执行的操作、状态变化等),使得开发者能够方便地管理用户界面中的各种命令,保持界面的一致性和交互的便捷性。

2024-04-12 23:11:38 364

原创 详解QUuid类的使用

QUuid是 Qt 框架中的一个类,用于生成、操作和表示全局唯一标识符(Universally Unique Identifier, UUID)。UUID 是一种标准格式的 128 位数字,通常用 32 个十六进制数表示,并且包含分隔符和特定的版本信息,以确保其全球范围内的唯一性。QUuid类提供了多种便利的方法来生成 UUID、检查其有效性、转换其格式以及进行比较等操作。以下是对QUuid使用的详细说明及相应的代码示例。

2024-04-12 22:15:41 342

原创 Qt中播放GIF动画

在Qt应用程序中,如果你想在QLabel控件上播放GIF动画,可以使用QMovie类与QLabel配合来实现。

2024-04-11 22:43:40 383

原创 详解Qt添加外部库

在Qt项目中添加外部库是一项常见任务,无论是静态库还是动态库都需要正确的配置才能让项目顺利编译链接。

2024-04-11 22:04:47 1059

原创 详解Qt元对象系统

Qt元对象系统不仅提供了诸如信号槽(Signals & Slots)、属性系统(Property System)等功能,还实现了对C++对象的运行时类型信息的支持。Qt元对象系统极大地丰富了C++在开发GUI应用程序时的灵活性,通过信号槽机制实现了松耦合通信,属性系统则便于管理对象状态。Qt元对象系统的核心在于对QObject及其派生类进行增强,通过编译器预处理步骤(moc工具)生成额外的元数据,存储在QMetaObject结构体中。宏激活了元对象系统,从而具备了使用信号槽和其他元对象特性的能力。

2024-04-11 21:38:29 953

原创 QDataStream:使用指南、技巧与注意事项

QDataStream在Qt开发中扮演着至关重要的角色,尤其在处理二进制数据交换和持久化存储方面,具有显著优势。

2024-04-10 22:33:06 468

原创 QTextStream的使用、技巧与注意事项

QTextStream作为Qt库中的一个重要组成部分,极大地简化了文本处理的复杂性。

2024-04-10 22:28:05 348

原创 详解Qt框架下文件读写操作

在Qt开发中,文件读写操作是一项基本且重要的技能。Qt为此提供了QFile、QTextStream和QDataStream等类,以满足开发者对不同类型文件的操作需求。本文将详细讲解这些类的使用方法,并结合实例代码,帮助读者深入了解和掌握Qt中文件读写操作的具体实现。

2024-04-10 22:25:03 395

原创 逐步掌握CMake:从入门到实战详解

CMake是一款强大的开源自动化构建工具,能够帮助开发者在多种平台上轻松管理和构建项目。但是学起来真是费劲,本篇博文将通过一系列案例,逐步展示如何从环境搭建开始,逐渐深入CMake的使用,包括编译多个源文件、项目级组织结构管理,以及动态库与静态库的编译控制,最后探讨条件编译等高级特性。从简单的源文件编译,到复杂项目组织,再到库文件的管理和条件编译,CMake都能有效地帮助开发者构建高效、可移植的项目。随着对CMake理解的深入,开发者能更好地适应不断变化的项目需求,提升开发效率。包含对这些功能的调用。

2024-04-09 21:21:34 698

原创 一个通用的CMake项目模板

后面的部分应根据实际情况填写对应的组件和链接指令。对于版本控制,如果项目不是基于Git管理,或者不需要版本信息注入到目标属性中,那么这部分也可以删除或替换为适合项目本身的版本获取方式。请注意,你需要根据具体项目的需求修改上述模板中的项目名称、源文件路径、外部依赖查找、编译选项以及版本控制信息等内容。同时,对于实际的外部依赖查找,如Boost,在。

2024-04-09 18:20:02 169

原创 详解cmake简单语法与使用

这是一篇cmake入门浅显的文章,深入学习的话没必要阅读。

2024-04-09 18:13:11 335

原创 Qt单实例运行

开发过程中经常需要确保Qt程序的唯一实例运行,方法有很多种,这里讲一种最方便的方法,创建共享内存。在这个示例中,我们尝试创建一个名为"MyUniqueAppInstance"的共享内存段。如果创建失败并且错误是AlreadyExists,则说明已经有一个实例在运行,并相应地处理。

2024-04-06 23:47:42 335 2

原创 详解Qt中的容器

Qt中的容器类是用于存储和组织数据的重要组件,它们是基于模板类的,可以根据需要存储任意类型的数据。Qt的容器类大致分为两类:顺序容器和关联容器。下面将详细解释各个容器类的用途、差异和使用时的注意事项,并附上代码示例。

2024-04-05 21:09:25 1095

原创 详解Qt中访问数据库

在Qt中访问数据库涉及到几个关键步骤,主要包括加载数据库驱动、建立数据库连接、执行SQL语句、读取结果等。下面将详细介绍这些步骤,并给出一个简单的示例,这里假设使用的是SQLite数据库。记得首先在pro文件中添加QT += sql。

2024-04-05 19:14:24 616 1

原创 详解Qt网络编程

Qt的网络编程能力非常强大,它提供了从底层socket API到高层HTTP、FTP等协议处理的完整解决方案。下面将简要介绍Qt中网络编程的核心类及其功能,并给出一些基本的使用示例。

2024-04-03 23:00:00 931 1

原创 Qt信号槽的使用

写Qt文章貌似没有信号槽内容就是没有灵魂。(●’◡’●)

2024-04-03 21:30:00 1250 1

原创 Qt中的事件与事件处理

在Qt中,所有的事件都是从QEvent基类派生出来的,如按键、鼠标点击、窗口大小调整、定时器到期等。每个事件代表了一种用户操作或系统通知。事件处理:Qt采用的是事件驱动编程模型,这意味着应用程序在运行时会监听和处理各种事件。当事件发生时,Qt会将其传递给相应的事件接收者(通常是一个QObject子类),比如QWidget。事件接收者通过重载函数或者其他特定的事件处理函数来响应特定类型的事件。

2024-04-03 17:43:11 1319 1

原创 Qt线程池——QThreadPool详细说明

QThreadPool是Qt框架中的一个组件,它主要用于管理和复用线程资源,以优化并发任务的执行效率。当你有大量短小的任务需要异步执行时,使用QThreadPool可以避免频繁创建和销毁线程所带来的开销,并能轻松控制同时运行的任务数量。

2024-04-03 00:20:16 195 1

原创 Qt线程之QtConcurrent的介绍

QtConcurrent是Qt框架中用于简化多线程编程的一个模块,它提供了高层次的API来实现并行计算,而不需要开发者直接管理线程的创建、调度和销毁。QtConcurrent主要通过QFuture和QThreadPool来进行并发任务的执行。

2024-04-02 22:24:21 155 1

原创 详解Qt中使用线程

Qt中的线程相关知识涵盖了线程创建、管理、通信以及线程安全等方面。下面将详细讲解这些知识点,并提供对应的示例代码。

2024-04-02 22:12:10 882 1

原创 详解Qt中的布局管理器

Qt中的布局管理是用于组织用户界面中控件(如按钮、文本框、标签等)位置和尺寸调整的一种机制。说白了就是创建了一种规则,随着窗口变化其中的控件大小位置跟着变化。Qt提供了多种布局管理器,每种都有其特定用途和特点。

2024-04-01 18:28:48 453

原创 QProcess详解

QProcess 是一个功能强大的跨平台类,用于在 Qt 应用程序中启动、控制、监控和与外部进程进行通信。通过设置程序路径、参数、环境变量和工作目录,以及监听进程输出、发送输入、管理进程状态和获取退出信息,开发者可以灵活地与外部系统工具、脚本或服务进行交互。在使用时应考虑平台差异和权限问题,以确保代码的健壮性和跨平台兼容性。

2024-03-29 15:58:44 411

原创 Qt中使用lambda函数作为槽使用

无参数写法connect(ui->checkBox, &QCheckBox::pressed, [&](){ qDebug()<<"pressed"; });有参数写法connect(ui->checkBox, &QCheckBox::clicked, [&](bool checked){ qDebug()<<"clicked: "<<checked; });...

2022-04-30 14:25:02 861

原创 QVariant保存指针

QVariant保存指针使用QCombobox过程中发现addItem的第二个参数可以保存Qvariant类型的数据,常用数据肯定可以,如果是指针的话,就会有更大的用处。//保存QVariant var=QVariant::fromValue((void*)event);//获取QPaintEvent* e=(QPaintEvent*)var.value<void*>();...

2021-06-17 16:24:24 2102

原创 懒人发部Qt程序操作

背景在Qt程序发布的过程中感觉诸多繁琐,查询大量文章,找到了一种简单的方法。原理同样是使用官方提供的windeployqt这个工具自动复制依赖项。不同的是不用打开命令行窗口操作。直接QtCreator中运行即可。方法在QtCreator部署中添加Deploy步骤Command: windeployqtArguments: %{buildDir}/%{CurrentBuild:Typ...

2020-01-17 11:09:47 334

原创 独立线程中使用QSoundEffect播放音频文件

独立线程中使用QSoundEffect播放音频文件遇到的问题解决思路示例代码遇到的问题主线程中循环检测设备状态,存在某一个时间点或者间隔非常近的时候多个点报警的情况。报警后主线程中继续存在计算任务。直接使用QSoundEffect可以播放声音,但是声音出现断续的情况。特此考虑将QSoundEffect的播放工作放到单独线程中。解决思路直接将QSoundEffect使用moveToThr...

2020-01-08 16:38:22 3783 4

原创 Qt 不一样的定时器

Qt中定时器一般使用QTimer:Qtimer *timer = new QTimer(this);connect(timer, SIGNAL(timeout()), this, SLOT(update()));timer->start(1000);今天偶然发现了另外一种定时器,原型如下:int QObject::startTimer(int interval, Qt::Time...

2019-09-29 14:03:02 332

原创 win下部署gitblit遇到的问题——开启服务后无法访问

本文只记录部署gitbit过程中遇到的问题与解决方法。问题描述安装与配置过程很顺利,执行gitblit.cmd后,其他机器可以访问管理界面。但是在注册到系统服务后,发现无法通过浏览器访问管理界面。解决方法查找多遍注册方法后均无错误,但依然无法访问。偶然间发现win系统服务执行的不是gitblit-1.8.0\gitblic.cmd文件,而是gitblit-1.8.0\amd64\gi...

2019-05-13 15:57:28 8263 1

原创 VisualSVN Server 设置SVN客户端必须填写日志后提交

123在输入框中输入@echo offsetlocalset REPOS=%1set TXN=%2set SVNLOOK=&amp;quot;C:\Program Files\VisualSVN Server\bin\svnlook.exe&amp;quot;rem check that logmessage should contains at least 10 characters %SVNLOO...

2019-02-28 10:43:15 1214

原创 Ubuntu 14.04.6 16.04.6 18.04.2 20.04 22.04 24.04 等LTS版本下载

Ubuntu LTS 版本下载近来寻找Ubuntu16.04版本,发现官网首页下载非常慢,继续找到了这个地址。http://mirror.pnl.gov/releases/其中,包含12.04,14.04,16.04,18.04。...

2018-09-27 09:15:09 4951

原创 Qt中启动外部程序

Qt中启动外部程序在Qt中启动外部程序较简单,上代码:QProcess process;process.start("notepad.exe");这样就启动了一个记事本程序。 这里增加点难度,只允许当前系统中运行一个记事本程序。 分两步:判断当前是否运行记事本程序不存在,启动记事本看代码:QProcess process;process.start("...

2018-06-11 20:26:57 10798

原创 Qt 模态和非模态对话框简述

Qt模态和非模态对话框简述QDialog类是所有对话框窗口的基类。按照运行对话框是否可以和此程序 的其他界面进行交互,分为两类:模态、非模态非模态QDialog *dialog = new QDialog(this);dialog-&gt;show();模态使用exec()显示的对话框,此种方式放到main()函数中则直接显示窗口,如果放到其他窗口的构造函数中则其...

2018-03-15 16:30:57 631

Qt 拖放功能详解详细示例代码

Qt 拖放功能详解 Drag and Drop,详细的演示Qt拖放操作。 由源窗体拖动后,到目标窗体释放。 win11下Qt5.12编译运行。

2024-04-18

QUndoStack教程示例代码

使用Qt5.9开发 使用QUndoStack,实现撤销、返撤销功能

2024-04-17

opencv3.2.0_mingw_支持Qt5.9.6_win10

在win10_64位系统下编译,支持qt5.9.6(5.9版本应该都支持,未尝试),内含使用说明与验证示例

2019-04-19

Delphi7全介绍

高清版本的Delphi7开发全介绍,可转word,资源很好,可学习参考使用

2018-06-29

QtCreator快速入门第三版 随书源码

QtCreator快速入门 第三版 随书源码,经验证 真实可用

2018-03-02

QT5 开发及实例第三版随书源码

Qt5开发及实例(第三版)随书光盘源码内容。资料内代码真实可运行。

2018-02-22

Linux入门手册(基础知识)

linux入门书籍 linux的历史到各个发行版 ubuntu的安装和简单使用 在linux下娱乐和办公 wine在linux下运行windows程序 命令行的使用和基本命令 在linux开发程序

2015-05-11

html5程序设计(必看)

详细介绍html5的语法与程序开发,讲解内容丰富,知识面全知识点详细

2015-05-11

jira权威使用手册

详细介绍jira的使用、特性、安装和管理。 对于想熟悉jira的朋友有帮助

2013-11-25

linux编程之网络-高级

linux编程 网络编程 高级编程 学习的宝典 提高能力 学习linux

2013-11-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除