随笔分类 - Qt
摘要:使用 Qt + Inno Setup 打包桌面应用 添加 Qt 应用图标(.ico) Windows 桌面应用默认是没有图标的,为了提升可识别性和专业性,我们通常会给应用添加一个 .ico 图标文件。 制作 .ico 图标 如果已经有 .png、.jpg 或 .webp 格式图像,可以使用以下方式生
阅读全文
摘要:用 QStyledItemDelegate 自定义 QListView Item 外观 Qt 提供的 QListView 默认只支持文本/图标列表,而现实中我们经常需要显示更复杂的内容,比如一行里显示多个“基因标签”、“操作按钮”或其他控件。 技术核心: 使用 QAbstractListModel
阅读全文
摘要:Qt 信号与槽连接成功的本质与时机 信号与槽连接的本质 Qt 信号槽机制基于元对象系统(Meta-Object System),使用 connect() 函数在运行时建立信号和槽之间的映射。 connect(sender, signal, receiver, slot) 在调用时,会将发送者对象的信
阅读全文
摘要:SlideshowDialog 动画启动时机导致 startMusic 信号失效问题及正确触发流程总结 在 Qt 项目中,有一个 SlideshowDialog 类,其中的子控件 AnimationWidget 会在启动动画时发射信号 startMusic(),用于通知外部开始播放音乐。 Slide
阅读全文
摘要:AnimationWidget 析构时发射 stopMusic 信号崩溃 AnimationWidget 类负责播放图片动画,同时通过信号控制背景音乐的播放、暂停和停止。 在项目中,AnimationWidget 的析构函数中直接调用了 emit stopMusic(),用于通知音乐停止。 问题描述
阅读全文
摘要:QSS QSS(Qt Style Sheets)是 Qt 的样式系统,用于美化控件,控制控件的颜色、边框、字体、背景、间距等外观效果。它的语法类似于 Web 的 CSS,但有自己的限制和扩展。 QSS 的应用方式 QSS 可以通过以下方式应用: 方式 说明 widget->setStyleSheet
阅读全文
摘要:替代 Qt6 废弃的 QMediaPlaylist 废弃说明:Qt 6 中移除了 QMediaPlaylist,QMediaPlayer 也不再内置播放列表支持。 Qt6 移除了官方 QMediaPlaylist,需要自己实现一个简单的播放列表管理类,负责管理媒体文件列表、当前索引、循环模式等。然后
阅读全文
摘要:QPixmap QPixmap 是 Qt 中用于显示位图图像的类,适合 GUI 界面绘制。它在后台会尽可能使用硬件加速,在屏幕上显示时性能很好,但不适合频繁修改像素数据。 主要特点 只能在 GUI 线程中使用(需要 GUI 环境) 支持透明通道(Alpha) 适合快速绘制 不适合像素逐点修改,若需要
阅读全文
摘要:QTimer QTimer 是 Qt 框架中提供的一个用于事件驱动定时操作的类,属于 QObject 派生类。它常用于定时更新 UI、实现延时处理、周期性任务执行等功能。 基本用法 周期性定时器(循环触发) QTimer *timer = new QTimer(this); connect(time
阅读全文
摘要:Qt 事件系统 Qt 的事件系统是一个事件驱动架构,它让程序能够响应用户操作(鼠标、键盘等)、系统消息(窗口调整、定时器)、以及自定义事件。所有事件都被封装为 QEvent 对象,通过事件循环分发给对应的 QObject(尤其是 QWidget)处理。 事件系统的核心类和概念 类 / 概念 作用简介
阅读全文
摘要:Qt 的界面绘制机制 Qt 界面绘制的核心组成 绘制相关事件与函数 事件 / 函数 作用 特点/说明 resizeEvent() 控件尺寸变化时触发 可以用于更新缓存或计算布局 update() 异步请求绘制,标记脏区域 推荐使用,效率高,自动合并多次请求 repaint() 同步立即绘制(阻塞)
阅读全文
摘要:Qt 的隐式共享 Qt 中很多数据类型(字符串 QString、字节数组 QByteArray、图片 QImage、容器类等)都涉及大量内存数据的复制。传统的“值拷贝”如果直接深拷贝,会导致性能开销非常大。 隐式共享技术结合了: 引用计数(Reference Counting) 写时复制(Copy-
阅读全文
摘要:QUiLoader 动态加载 ui 文件 在 Qt 中,QUiLoader 是一个用于在运行时动态加载 .ui 文件的类,属于模块 QtUiTools。相比于常规的 uic 工具将 .ui 编译为 .h/.cpp,QUiLoader 提供了更灵活的方式,例如用于插件化、换肤、动态模块加载等场景。 什
阅读全文
摘要:Qt多线程简介 Qt 多线程编程是 Qt 框架中非常重要的一部分,适用于需要在后台处理耗时任务而不阻塞主线程(UI线程)的应用场景。 Qt 多线程的几种方式 方法 类名 场景 描述 方式一 QThread 子类化 学习演示 继承 QThread 并重写 run() 方法,手动启动线程 方式二 QOb
阅读全文
摘要:Qt UI构建流程 Qt 的 UI 构建流程可以分为两种方式: 使用 Qt Designer(.ui 文件)+ 自动生成代码 使用 C++ 代码手动构建 UI(纯代码方式) 使用 Qt Designer 构建 UI(推荐方式) Qt Designer 是什么?能做什么? Qt Designer 是
阅读全文
摘要:自定义信号和槽 信号链式传递 在 Qt 中,信号链式传递(Signal Chaining / Signal Relay)是指: 一个对象接收到信号后,在对应的槽函数中再次发出另一个信号,从而实现多个对象之间信号的逐级传递或响应链式处理。 这种模式可以让多个模块间解耦通信,适用于状态同步、事件广播、控
阅读全文
摘要:Qt_ui_headerlabel被覆盖问题总结 ProTreeWidget 类定义与实现(自定义 QTreeWidget) protreewidget.h #ifndef PROTREEWIDGET_H #define PROTREEWIDGET_H #include <QTreeWidget>
阅读全文
摘要:手动编译Qt项目 Qt 6.9.0 的 MinGW 64-bit 控制台环境里,默认会配置好环境变量,包含: moc uic rcc g++(MinGW 编译器) 直接打开 Qt 控制台(Qt 6.9.0 (MinGW 13.1.0 64-bit) Command Prompt),执行编译命令。 目
阅读全文
摘要:通用对话框:QMessageBox、QWizard QMessageBox QMessageBox 是 Qt 框架中用于显示标准对话框(提示信息、警告、错误、询问等)的类,属于 Qt Widgets 模块。它是一个简单但强大的 UI 元素,常用于向用户展示信息或要求用户做出选择。 基本用法 QMes
阅读全文
摘要:通用对话框:QErrorMessage、QFileDialog、QProgressDialog QErrorMessage QErrorMessage 是 Qt 提供的一个专用对话框类,用于显示错误消息(通常是运行时错误),并带有“不再显示此消息”的功能。这对于向用户提示非致命性错误(如输入错误、文
阅读全文

浙公网安备 33010602011771号