【QT入门到晋级】用开源的自定义控件开发

发布时间:2026/11/4 7:18:59

【QT入门到晋级】用开源的自定义控件开发 前言有AI辅助没必要手搓自定义控件(1年前用QGraphicsQPainter手搓过1个)可以先找找开源可用的自定义控件不满足的再让AI辅助进行微创新。本文讲的是feiyangqingyun提供的quc控件。效果图以上刻度控件是每秒更新一次曲线是每秒更新100次。quc安装方法安装下文安装即可此处不重复这些基础操作。【QT自定义控件】qwt6.13/quc 安装教程图文教程_qt quc-CSDN博客文章浏览阅读2.7k次点赞36次收藏22次。该博客记录了QT自定义控件qwt6.13和quc的安装教程。环境为QT5.11.0、Win10、MinGW - 32。qwt6.13安装涉及编译环境配置、文件复制等操作quc安装需选对应编译环境、复制文件、修改工程.pro文件使用时都需用qt designer打开ui文件查看控件。https://blog.csdn.net/m0_54522601/article/details/140327968?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-140327968-blog-53307988.235^v43^pc_blog_bottom_relevance_base3spm1001.2101.3001.4242.1utm_relevant_index4QT引用自定义控件直接点击mainwindow.ui文件是看不到quc控件的关键步骤是右键点击mainwindow.ui右键菜单选择【Qt Designer】,在UI设计器中才能找到“Quc Widget”。注意以上是前端调用自定义控件的方式需要编译动态库等操作相对要麻烦一些。如果有自定义控件的源码.h和.cpp文件直接加入到现有qt项目中以后台方式直接调用即可以下是我分享过一个手搓的自定义控件类【QT自定义2D控件】QGraphics绘制仪表盘_qt仪表盘控件-CSDN博客文章浏览阅读592次点赞4次收藏11次。本文介绍如何使用Qt的QGraphics框架绘制自定义2D仪表盘控件包含背景圆、进度弧、刻度线、中心文本及底部文字的分步实现方法并提供完整源码结构和绘制逻辑。https://blog.csdn.net/liangyuna8787/article/details/154545504?spm1001.2014.3001.5502quc测试案例与效果图配套的测试代码按要求把3个控件拉入到窗口中即可完成UI设计增加两个定时器一个是获取0~100以内的随机数一个是获取正弦sin值//mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include QMainWindow #include QTimer QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent nullptr); ~MainWindow(); private slots: void RandonTimeout(); void WareonTimeout(); private: Ui::MainWindow *ui; QTimer *m_rand_timer; QTimer *m_ware_timer; double m_phase 0.0; }; #endif // MAINWINDOW_H//mainwindow.cpp #include mainwindow.h #include ui_mainwindow.h #include QRandomGenerator #include QDebug #include QtCore/qmath.h MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui-setupUi(this); ui-gaugeCar-setAnimation(true); // 开启动画过渡更平滑 ui-gaugeCar-setAnimationStep(2); // 每帧走 2约半秒到位 ui-gaugeCar-setValue(0); // 初始值 ui-rulerTemp-setValue(0); // 创建定时器1000ms 1秒 m_rand_timer new QTimer(this); connect(m_rand_timer, QTimer::timeout, this, MainWindow::RandonTimeout); m_rand_timer-start(1000); ui-waveChart-setTitle(实时波形); ui-waveChart-setMinValue(0); ui-waveChart-setMaxValue(100); // 注意数据不能为负 ui-waveChart-setXStep(1); ui-waveChart-setYStep(10); ui-waveChart-setSpace(10); ui-waveChart-setSmooth(true); // 平滑曲线出圆弧效果 ui-waveChart-setShowHLine(true); ui-waveChart-setBgColorStart(QColor(30, 30, 30)); ui-waveChart-setBgColorEnd(QColor(60, 60, 60)); ui-waveChart-setTextColor(Qt::white); ui-waveChart-setPointColor(Qt::cyan); // 创建定时器1000ms 1秒 m_ware_timer new QTimer(this); connect(m_ware_timer, QTimer::timeout, this, MainWindow::WareonTimeout); m_ware_timer-start(10); } MainWindow::~MainWindow() { delete ui; delete m_rand_timer; delete m_ware_timer; } void MainWindow::RandonTimeout() { // Qt 5.10 推荐写法生成 [0, 100] 的随机整数 int val QRandomGenerator::global()-bounded(0, 101); ui-gaugeCar-setValue(val); ui-rulerTemp-setValue(val); } void MainWindow::WareonTimeout() { double value 50 40 * qSin(m_phase); // 你的实际采集值 m_phase 0.1; ui-waveChart-addData(value); }代码很简洁直接调用接口这些接口可以直接跳转到头文件去看。
延伸阅读

更多相关文章

2026/11/4 7:18:59

1.2.CS146S 第二课:编程 Agent 运行框架要点1.2

CS146S 第二课:编程 Agent 运行框架要点根据用户提供的课堂文本记录归纳。仅保留原文观点,不补充外部知识;各节附原文时间范围,便于回查。讲者的推测仍按推测表述。一、本课讲什么? 从上一课的简单 Agent 循环&#xf…

2026/11/4 7:18:59

嵌入式软件八股文(1)

前言:问题来源于:嵌入式面经111题答案汇总(含技术答疑)_3大嵌入式项目源码分享—嵌入式Linux项目_牛客网https://www.nowcoder.com/discuss/767788764180516864https://www.nowcoder.com/discuss/767788764180516864https://www.nowcoder.com/discuss/76…

2026/11/4 8:29:10

OpenHarmony开发中的licins工具跨平台适配与优化

1. 项目背景与工具定位在开源软件合规管理中,许可证文本的规范插入是个看似简单却极易出错的环节。licins作为一款轻量级许可证插入工具,原本主要服务于Linux环境下的开源项目维护。当OpenHarmony PC版开始支持更多外设和开发工具链时,我们发…

2026/11/4 8:29:10

STM32F103简易示波器:ADC+DMA+定时器采样链路实战

简介:这份资源是面向嵌入式初学者与电子竞赛备赛者的STM32F103C8T6简易示波器实战Demo,围绕ADC采样、定时器触发、串口通信与波形显示等核心环节,帮助读者理解如何用Cortex-M3内核微控制器完成从模拟信号采集到数字波形呈现的完整链路&#x…

2026/11/4 8:29:10

三维数字孪生技术在智能仓储管理中的应用与实践

1. 项目背景与核心价值 在传统仓储管理中,我们常常会遇到这样的困境:明明系统显示某个货位上有库存,但实际盘点时却找不到货物;新来的操作员需要花费大量时间熟悉库区布局;旺季时多个作业班组在立体库中频繁发生动线冲…

2026/11/4 8:29:10

量化分析Token成本失控?WorkBuddy国际版限免模型实测与选型指南

量化分析这个圈子,玩久了都会碰到同一个尴尬:策略还没跑通,Token账单先烧起来了。尤其是做KNN算法股票量化分析这类需要反复迭代的任务,AI每给你改一次代码、每解释一段回测结果,背后都是白花花的Token在燃烧。上个月我…

2026/11/4 8:24:05

LangGraph:图结构在NLP中的应用与优化

1. LangGraph 核心概念解析LangGraph 是近年来在自然语言处理领域兴起的一种图结构表示方法。简单来说,它把文本中的语言单元(如词、短语、句子)及其关系用图的方式建模,让机器能像人类一样理解语言的层次结构和语义关联。我第一次…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 0:03:20

AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年…

2026/11/4 0:03:20

从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你…

2026/11/4 0:03:20

32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑