![](https://img-blog.csdnimg.cn/0ae46b52be5044e8971929f371594552.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
QT基础
文章平均质量分 58
QT基础
路奇怪
各位该点赞点赞 该收藏收藏啊,不定期会更新系列基础知识
展开
-
Qt基础 截屏功能
目前市场上截屏都是矩形的,所以那种规则或者三角怎么处理呢?原创 2024-05-28 13:56:10 · 97 阅读 · 1 评论 -
QT基础 获取颜色
2.截图并将坐标代入途中获取RGB(这里要考虑坐标不在范围)假如是通过mousePressEvent获取到鼠标坐标。可以用eventFilter 或者contains。比如我们要获取图片上某个点的颜色,要怎么处理呢?关于是不是在控件范围内。原创 2024-05-15 10:41:37 · 146 阅读 · 0 评论 -
QT基础 框选控件
当用户释放鼠标按钮时,检查框选区域内有哪些控件。这可能需要你遍历界面上的所有控件,并检查它们是否在框选区域内。:一旦你知道了哪些控件被框选,你可以执行相应的操作,比如高亮这些控件、执行某个命令等。方法中,根据鼠标移动的位置绘制一个矩形框,表示用户正在框选的区域。:当用户按下鼠标按钮并开始移动时,开始追踪鼠标的位置。:对于你想要框选的控件,你需要重写它们的鼠标事件处理函数(如。先说需求:比如有的时候想要框选界面上的控件,要怎么判断呢?//如果不想要矩形框去掉相应绘制窗口就可以了。方法来获取鼠标的当前位置。原创 2024-04-15 17:41:32 · 300 阅读 · 0 评论 -
Qt基础 自定义消息框
ps:忘记copy那位大佬tip代码了,后面新增可以点选的控件。使用,按钮的样式就不给了。原创 2023-05-25 16:55:56 · 266 阅读 · 0 评论 -
Qt基础 低功耗蓝牙通信
首先说下基础知识,蓝牙连接是分经典蓝牙和BLE(低功耗)蓝牙的,他们的通信方式不一样,经典蓝牙用的socket,BLE用的是服务与特征。平台式VS2019+Qt5.12.11,但是Qt支持蓝牙并不好,如果你们有其他方案的话,尽量使用其他方案,因为有些问题,博主也没解决。添加头文件。原创 2024-01-23 11:00:53 · 2044 阅读 · 0 评论 -
Qt基础 QListWidget dragDrop拖拽操作
关于QLisWidget的item拖拽操作,也可以某个控件拖拽思路。原创 2023-12-01 18:08:47 · 1288 阅读 · 0 评论 -
Qt基础 界面镜像
前几天遇到一个需求 镜像界面想到几个办法,先给效果图。原创 2023-11-15 17:49:38 · 434 阅读 · 0 评论 -
Qt基础 QT QTextEdit自动滑动
获取QTextEdit的QScrollBar,然后再构造函数算出QScrollBar歩长pageStep(这里不知道为什么在其他地方算的步长很大),然后就定时器QScrollBar++或者--啦。最近公司在做一个提词项目,本来对这里功能难易感觉属于一般的,谁知道碰到一个很简单问题,搞了半天,先喷一下百度浏览器 不知道是算法越来越垃圾,还是我检索的有问题,还是说这个问题很难。那个End不用看意思就知道光标移动到文章尾部,还自动滚动,滚尼ma呢。严重标题与内容不符,别用猪脑写文章好不好!原创 2023-11-14 10:32:21 · 691 阅读 · 0 评论 -
Qt基础 QScatterSeries
QScatterSeries类是Qt Charts模块的一部分,用于表示散点图。原创 2023-10-20 11:48:20 · 373 阅读 · 0 评论 -
QT基础 柱状图
从上图得知柱状的基类是QAbstractBarSeries,派生出来分别是柱状图的水平和垂直类,只是类型行不同。原创 2023-10-19 15:14:56 · 685 阅读 · 0 评论 -
QT基础 QChart绘制折线
本质逻辑上与上面差不多,但是如果要放大/缩小等操作,需要重写一下QChartView函数,如果是触摸的需要重写QChart的bool sceneEvent(QEvent *event);原创 2023-10-11 17:42:54 · 524 阅读 · 0 评论 -
Qt基础 QPieSeries饼状图
tip:上面代码QObject::connect按道理不应该是按照下面这样去弄,按照上面调式我发现循环外事。QPieSeries Class:饼状图数据。表示饼图系列中的单个切片(其实就是标签)管理图表系列、图例和轴的图形表示。可以显示图表的独立小部件。原创 2023-10-17 17:26:30 · 453 阅读 · 0 评论 -
Qt基础-乱码问题
围绕这些名词:字符编码、字符集、如ASCII、UNICODE、GBK、GB2312、GB18030、UTF-8、UTF-16等,源码字符集、执行字符集,MSVC编译器、MinGW编译器等,差不多就够了。个人常用原生的QtCreator开发,Qt+VS环境对调试非常友好,其它的了解不多,但乱码问题应该也没有的,因为源码字符集以及执行字符集都是GBK,统一就没有问题。,原因就是QtCreator源码字符集默认UTF8的,MSVC执行字符集默认GBK的,不统一乱码自然出现。源码字符集 和 执行字符集编码不统一。原创 2023-10-18 15:42:06 · 116 阅读 · 0 评论 -
关于Qt QPushbutton 图标与字体间距处理办法
/新建布局,把元素一一添加到布局,再把布局设置到按钮上。//new两个Label,一个放置图片,一个放置文本。//设置文字的字样、字体、颜色等样式及文本框宽度。//设置描述按钮功能的文字。//加载图片到Label。转载 2023-10-10 17:57:11 · 1406 阅读 · 1 评论 -
QT基础 关于QT延迟
使用QEventLoop传入参数msec,使程序延时msec毫秒。这种方法不会阻塞当前线程,尤其适合Qt的单线程带UI程序,或者UI线程,因为线程阻塞时,很明显的现象就是UI卡死。当然,你也可以更改addMSecs为addSecs使程序延时msec秒。如果去掉QCoreApplication::processEvents(QEventLoop::AllEvents, 100);可以延时,但也会阻塞线程。原创 2023-08-25 15:47:11 · 1329 阅读 · 0 评论 -
Qt基础 线程池
主要属性:1、activeThreadCount: 此属性表示线程池中的活动线程数,通过activeThreadCount() 调用。2、expiryTimeout: 线程活着的时间。没有设置expiryTimeout毫秒的线程会自动退出,此类线程将根据需要重新启动。默认的expiryTimeout为30000毫秒 (30 秒)。如果expiryTimeout为负,则新创建的线程将不会过期, 在线程池被销毁之前, 它们将不会退出。原创 2023-08-25 14:29:24 · 119 阅读 · 0 评论 -
Qt基础 hid设备通信
这篇文章主要是记录C++与USB-hid设备(即免驱动的usb设备,鼠标、键盘就是hid设备)进行通信,它也是一种USB设备,只不过不需要安装驱动,如果要与非USB-HID设备通信请参考libusb。libusb首页github地址以上就是hidapi库的配置方法和使用,仅作为学习记录参考。如果本文章有误,请指出,感激不尽!转载 2023-08-14 11:07:04 · 1745 阅读 · 0 评论 -
QT基础 Hid设备插拔检测
hid设备检测踩了好多坑,本博客一一列出来,先说环境是Qt5.12+Vs2019的,如果是MFC的框架可以去看MFC的了,两者环境区别还是很大(我帮你踩了)。这里主要说一下,插拔Hid设备检测,检测hid可以分为两步。因为处理消息nativeEvent是QWIdget函数在写的时候继承QWidget,除此还有一些博客会用nativeEventFilter这个消息处理,这里wParam就是Hid设备操作。注册监控需要注意是设备GUID,每种设备GUID是不一样的,下面基本上罗列常用。原创 2023-08-10 18:14:21 · 678 阅读 · 0 评论 -
QT 常用数据结构整理
当添加新的元素时,QList会根据需要自动扩展内存空间,以容纳更多的元素。如果返回值大于1,说明程序之前使用 insertMulti() 函数为一个 key 添加了多个 value 值(QMap 允许一对多映射,多个 key-value 元素 的 key 值相同,但一般不建议这样做)。第一个 insert() 自动添加新节点到红黑树的排序位置,红黑树只按照 key 排序,同样 key 的多个 value 值不会排序,同样 key 的新节点总是插入到同样 key 旧节点的最前面。原创 2023-07-28 13:57:52 · 931 阅读 · 0 评论 -
QT elidedText 避坑
我们知道这段代码是省略名称 但是如果你是new出来的,这里你有样式 并且样式里用的字体大小,把这段代码加到样式下面可以,如果单独写就不行。解决办法:再设置一下字体。原创 2023-07-14 14:03:36 · 240 阅读 · 0 评论 -
qt Qss 边框渐变
使用QGraphicsEffect:你可以使用Qt的图形效果框架来实现按钮的渐变边框效果。首先,你可以创建一个QGraphicsEffect对象,并将其设置为按钮的图形效果。然后,你可以使用QLinearGradient来创建渐变效果,并将其设置为QGraphicsEffect的属性。使用QPainter绘制:你可以通过重写按钮的paintEvent函数,使用QPainter来绘制按钮的边框。在绘制过程中,你可以使用QLinearGradient来创建渐变效果,并使用QPen来设置边框的样式。原创 2023-06-30 17:36:05 · 1625 阅读 · 0 评论 -
Qt 关于Qt信号多层传递优化
有一个信号(假如是clicked信号),只能从D->B->C->A类这样传递信号,会很冗余,有没有什么好的办法?我们其实可以做全局信号传递类TranceClass(就叫T吧),只需要从D->T->A就可以了,但是T被很多类调用,如果不小心delete就很麻烦了,这就引出的"单例类"用法其实很简单,我们只需要获取传递类T的单例对象就可以,然后就像正常信号接收消息,然后在传送消息(如果参数就传参数)下面是单例T的写法,可以参考一下翻译 2023-06-19 18:00:03 · 378 阅读 · 0 评论 -
Qt 无边框窗口、边框圆角
首先要确认一点,无边框窗口与qss背驰,相当于继承QWdiget自定义控件,所以当你设置无边框时,会导致其qss失效,解决办法也有,如下图官网给出解决方案。不用重写paintEvent,但是明显能看出来有锯齿。无边框只要重写以下几个消息响应就可了。原创 2023-05-08 15:02:25 · 715 阅读 · 0 评论 -
Qt QSlider双滑块
首先,处理覆盖问题,若有有什么办法能够让最上层滑轨透明,显示下层样式,直接来代码吧,这里需要注意是前后问题,如果你想QSlider1在最上层那么只能隐藏滑轨和背景,QSlider2在最下层,反之亦然。2.第二个问题是,当我们QSlider双滑轨切换前后位置会出现,最后的滑块没动,动的是最前面的,这是因为我们鼠标一直按着,当前界面切换过来了,但是消息处理函数还没切换过来,这里需要特殊处理一下。下面是遮盖处理以及思路。原创 2023-03-14 18:39:02 · 1697 阅读 · 0 评论 -
Qt1.12+Vs2019 自定义安装包制作
或者使用vs官方的软件Microsoft Visual Studio Installer Projects,在vs在线工具可以下载,国内网速可能比较慢,连接教程。2.如果安装包要纯自定义界面的话,可能要需要手动写代码,但是软件打包是个问题,比如说打包成msi或者exe。这里就可能会涉及到压缩和解压。但是我们获取到文件句柄在WriteFIle写入文件时候就会提示报错或者,是因为我们传参有问题具体可以看下。将包打包软件zip加入资源里面->通过资源句柄获取到资源,将资源写到某个位置->解压文件。翻译 2023-02-22 16:34:57 · 402 阅读 · 0 评论 -
vs+qt win32和x64编译
选择要创建编译方式新建编译方式创建新的平台属性页上的设置第一种原因第二种原因。原创 2023-02-07 17:00:08 · 515 阅读 · 0 评论 -
QT 关于注册表操作QSettings,以及卸载程序uninstall.exe处理方法
Qt操作注册表类是QSettings,所以要添加头文件#include ,因为注册表是目录树结构因此我们可以对其操作allKeys、applicationName、childGroups、childKeys等操作。2.如果以上方法还是不可以,可以试试注册表UninstallString这个值数据加上""双引号,卸载权限不够,请与管理员联系,但是用360或者win11应用和功能是可以卸载的。1.修改UAC权限,如果是win10以上系统的话,会出现小盾牌的字样。但是这里需要注意的是。原创 2023-02-06 11:15:20 · 808 阅读 · 0 评论 -
QT QProcess调用外部程序
Qt提供QProcess调用外部程序,继承QIODevice,因此我们可以把它当作是一个I/O设备进行读写操作,启动程序有两种方式一体式(外部程序启动后,将随主程序的退出而退出)#if!#endif需要注意是路径中带有空格,QProcess无法识别//1-不带空格。能够启动//2-带空格,无法启动//3-带空格,使用带參模式。能够启动分离式(外部程序启动后,当主程序退出时并不退出。而是继续执行)#endif#if!#endif。原创 2023-02-01 11:28:34 · 2201 阅读 · 0 评论 -
vs2019 + qt5.12.11 打包
C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\bin\windeployqt.exe 你的exe路径XX.exe。我们可以用搜一下电脑里的dll,找到响应的dll,放到刚才用qt打包的文件夹中,再用enigmavb.exe打包就可以了。然后嘞 我用qt自带的打包工具windeployqt exe (因为我的再C盘下面)先吐槽一番,感觉vs+qt打包有点巨坑,还是说我第一次打包其实都是这样子的。然后用enigmavb.exe将生成的.exe打包成一个单独exe文件。原创 2023-01-18 17:35:18 · 1027 阅读 · 0 评论 -
Qt 关闭app窗口自动销毁相关问题
但是到了Qt这边,我们new出来窗口,app点击关闭发现主窗口关闭了,但是new出来的窗口没有关闭。此外如果需要直接退出某个应用程序,可以直接调用Qt中的一个全局指针:qApp ,全局指针qApp指向全局的QApplication对象,可以在Qt说明文档中直接找到,不是main函数定义的QApplication对象(QApplication对象也可以退出,使用 app->exit(0);如果widget接受了关闭事件(QCloseEvent),窗口将会隐藏(实际上调用hide())。原创 2023-01-14 18:34:16 · 1521 阅读 · 0 评论 -
Qt Qss样例
里面有很多好玩样式,但是没用到给个链接。原创 2023-01-13 15:00:35 · 211 阅读 · 0 评论 -
Qt 焦点Focus
关于焦点Focus,以及自定义焦点链。转载 2023-01-13 14:32:09 · 5115 阅读 · 0 评论 -
Qt 自带标题栏处理方法思路
public:// ...需要注意参数eventType,在不同的系统上,也是不一样的,Qt文档也有说明X11 为 "xcb_generic_event_t"macOS 为 "mac_generic_NSEvent"windows 为 "windows_generic_MSG" 和 "windows_dispatcher_MSG"在Windows程序中,消息是由MSG结构体来表示的。MSG结构体的定义HWND hwnd;//窗口句柄//消息常量标识符。原创 2023-01-13 14:20:17 · 1071 阅读 · 0 评论 -
Qt 错误:必须使用“class”标记来引用此作用域中的“Form”类型
Qt编译error: must use 'class' tag to refer to type 'Form' in this scope的原因应该是编码导致二义性了,有些根据他的提示new之后添加class就可以,但是思想逻辑错误就不行。比如下个例子:我添加了一个容器,想自定义控件,这个对象类是From,然后把From类提升窗口部件,并把下面画圈框提升为From类。会包以上错误信息,按照编译器上面的信息在new后面添加class,运行直接崩溃。...原创 2020-05-15 21:46:05 · 1863 阅读 · 2 评论 -
QT ToolBar上工具按钮隐藏
QT ToolBar上怎么隐藏工具按钮或者控件原创 2022-12-29 15:01:11 · 1343 阅读 · 4 评论 -
qt打包exe程序出现应用程序无法正常启动0xc000007b或者其他的错误
解决了qt打包时可能出现的错误原创 2022-11-09 15:19:35 · 2158 阅读 · 4 评论 -
QT基础-事件
Qt的事件处理很多如下图Qt的事件处理流程:Qt事件件->相应的QWidget对象->QWidget的event->event根据不同类型调用处理函数->在处理函数里面发送预定义信号->调用相关的槽函数。以点击按钮为例:1.点击鼠标会触发消息,调用成员函数event(这里不一定是QWidget)2.调用keyPressEvent成员数3.调用click()成员函数4.触发信号SIGNAL(clicked())QT事件过滤器:对需要接收事件原创 2021-09-26 11:17:02 · 250 阅读 · 0 评论 -
QT基础-界面窗口
QMianWIndow主要由QToolBar工具栏、QDockWidgets(可以停靠或者悬浮的窗口栏)、QMenuBar菜单栏和QStatusBar状态栏和中心区域组成,以vs为例:在讲窗口菜单之前,先了解QAction这个类,因为QT把窗口菜单和添加行为分成了两个类。所以为我们要在菜单添加按钮、文字、图片都先要QAction对象添加相应菜单里。QMenuBar菜单QToolbar工具栏除此之前还可以添加QWidget控件,代码如下QStatusBar状...原创 2021-09-24 16:26:55 · 269 阅读 · 0 评论 -
QT基础-对话框
Qt的QDialog对话框分为模态和非模态,就是阻塞和非阻塞意思,集成QWidget。与QWidget区别QDialog:专门作为交互界面,不能作为子部件嵌入到其他界面容器内。QWidget:可以作为父控件,也可以作为子控件。除此之外还有其他系统提供对话框:模态对话框:1.没有关闭,就无法与其他窗口交互2.在栈上创建,通过exec()进入消息循环导致阻塞,可以通过DialogCode接收exec按下"确定"还是"取消"。Rejected:操作从失败Acce..原创 2021-09-24 11:03:58 · 337 阅读 · 0 评论 -
QT 读取XML
假如XML文件格式如下:<?xml version='1.0' encoding='utf-8'?><root> <id id="1" phone = "one two"> <name>xiaoming</name> <gender>male</gender> <age>19</age> <subject>C.原创 2021-09-08 15:33:57 · 997 阅读 · 0 评论