
Qt
文章平均质量分 64
觉皇嵌入式
这个作者很懒,什么都没留下…
展开
-
windows下Qt、MinGW、libmodbus源码方式的移植与使用
截止2023年8月26日时,libmodbus最新版本为3.1.10,本篇博客基于此版本进行移植。原创 2023-08-26 10:42:20 · 979 阅读 · 0 评论 -
QMessageBox、QColorDialog、按钮汉化显示
打开这个文件,如果有问号显示,那么这是翻译有问题的,将它手动的改一下中文译文即可!注意:加载翻译文件必须要在窗口显示之前!环境:QtCretator MinGW。然后重新发布就可以生成.qm文件,在。函数中加载翻译文件即可!版本:Qt5.9.9。在Qt源码目录下找到。原创 2023-08-03 18:03:27 · 1211 阅读 · 0 评论 -
Qt、事件的发送和接收以及自定义用户事件
Qt的事件所有的父类是:QEventQt事件类型:QEvent::Type其中,可供用户自定义使用的事件ID为1000~65535。自定义事件方法也比较简单,继承QEvent并将自定义类型传入即可。原创 2023-03-13 15:45:31 · 1478 阅读 · 0 评论 -
Qt、使用QToolButton和QStackedWidget的侧边栏(SideBar)的实现与实现原理解析
侧边栏是一个很常用的导航控件,如Qt Creator软件本身也使用到了侧边栏:目前使用Qt做出这种侧边导航栏,常见的做法是使用QListWidget加QStackedWidget,但是使用QListWidget做侧边的这个导航很不灵活,想要复刻出和Qt Creator这个侧边栏同样的效果很费劲,所以本篇博客采用QToolButton加QStackedWidget形式,在用QSS进行美化以达到效果。原创 2023-01-03 11:26:49 · 16733 阅读 · 14 评论 -
Qt、工程文件.pro的库引入和头文件引入、INCLUDEPATH和LIBS的详细使用方法
Qt、工程文件.pro的库引入和头文件引入、INCLUDEPATH和LIBS的详细使用方法原创 2022-12-30 15:22:31 · 10783 阅读 · 1 评论 -
Qt Creator 无效构建套件(Kits)的清除以及恢复默认设置
在使用在Qt Creator 开发过程中,有时候由于配置的原因出现了很多无效的构建套件(Kits),在创建项目也会列出来,因此想清理掉这些的无效的Kit;再有就是将Qt的配置搞乱了,需要恢复默认设置。原创 2022-12-13 14:04:37 · 3204 阅读 · 3 评论 -
Qt | QTextCodec类使用详解、GBK和UTF8编码互转、QString的toLocal8bit和toLatin1区别
Qt使用Unicode来存储、绘制和操作字符串。unicode是各个编码格式转换的媒介,以UTF-8转到GBK格式为例,需要先将UTF-8转到UNICODE,在通过unicode转到GBK,反之亦然。Qt提供了一组QTextCodec类,以帮助将非Unicode格式转换为Unicode格式。您还可以创建自己的编解码器类。原创 2022-12-01 21:06:26 · 16192 阅读 · 2 评论 -
Qt | QListWidgetItem返回错误的背景颜色(始终返回颜色值为0)问题解决
问题原因:默认情况下QListWidgetItem的背景QBrush是为空的,所以默认颜色为ListWidget的背景颜色,因此不会使用绘画,即不绘制背景颜色,所以获取到的brush转成qcolor后的颜色值始终为0。使用场景:程序使用QListWidget显示一个列表,这个列表具有点击选择和再次点击取消选择的功能,点击之后需要更换背景色以表示被选中,由于软件有主题效果,所以打算让背景色自动选择背景颜色取反显示,让软件去自适应。前景也是同样的情况,而前景使用视图调色板的文本颜色作为前景色。原创 2022-11-27 20:25:14 · 1013 阅读 · 0 评论 -
Qt | Qt For Android、Qt5.14.2安卓开发环境搭建详细步骤
JAVA SDK其中Android NDK直接下载的压缩包,解压即可。Android SDK提供了安装包和压缩包,用哪个都行。Qt For Android开发环境的搭建说简单也简单,说复杂也比较复杂。说它简单是因为安装的软件就一两个,安装完在Qt Creator中填入安装的目录即可。说复杂是因为这三个和Qt的版本必须要需要对应起来!原创 2022-11-27 14:07:54 · 20956 阅读 · 29 评论 -
Qt | 点击按钮后软件重启的实现
而如果使用quit函数,则应用程序直接退出,窗口直接销毁,也就是说倘若你实现了closeEvent函数并在此函数内实现了配置文件的保存,那么closeEvent是不会被调用到的。使用closeAllWindows是一级一级调用直到所有打开的窗口都被关闭。qApp提供了closeAllWindows和quit方法。Qt | 点击按钮后软件重启的实现。利用Qt的全局变量qApp。原创 2022-11-25 18:45:01 · 1270 阅读 · 1 评论 -
Qt | QListView、QListWidget、QTableView、QTableWidget的使用示例及区别
QListView、QListWidget是列表形式展示的控件。QTableView、QTableWidget是表格形式展示控件。继承关系:带Widget的继承自View,即:QListWidget是继承QListView,QTableWidget继承自QTableView。区别:QListView是基于Model,而QListWidget基于Item。这是它们的本质区别。QTableView、QTableWidget同理。原创 2022-11-25 16:46:04 · 6316 阅读 · 0 评论 -
Qt | 信号和槽之间的连接与使用、重载信号和槽的连接
QueuedConnection:队列连接,信号发出后会暂时被放到一个消息队列中,需等到接收对象所属线程的事件循环取得控制权时才取得该信号,然后执行和信号关联的槽函数,这种方式既可以在同一线程内传递消息也可以跨线程操作。DirectConnection:直接连接,槽函数会在信号发送的时候直接被调用,槽函数和信号发送者在同一线程。在Qt4中,使用SIGNAL和SLOT这两个宏,将信号和槽转成了字符串形式,是利用的字符串进行的匹配。Qt的信号和槽之间的连接有好几种,对应着不同的QT版本。原创 2022-11-21 16:25:18 · 2699 阅读 · 1 评论 -
Qt | QDialogButtonBox使用示例
QDialogButtonBox类,该类包含很多按钮控件,在窗体(widget)或者对话框(dialog)有多个按钮的时候,为方便管理就可以使用该类成组进行管理。当然也可以自行将按钮添加进QDialogButtonBox,它会会自动为用户的桌面环境使用适当的布局。在Qt Designer中的QDialogButtonBox控件就是默认了一个OK和一个Cancel按钮,OK按钮对应接受(accept),Cancel对应拒绝(reject)。原创 2022-11-11 09:37:56 · 4264 阅读 · 0 评论 -
Qt | UDP广播通信的使用、实战项目使用案例
UDP广播地址固定IP地址为:255.255.255.255,接收方绑定0.0.0.0地址并监听指定端口即可收到广播的群发消息。某设备的业务通信是使用TCP协议,当该部署到一个新的网络环境当中时,设备的IP地址是未知的,需要知道或修改设备的IP地址才能够进行TCP的通信。此时就可以在局域网内通过UDP广播的形式使该设备收到广播消息,从而使用设备返回IP地址、返回设备的MAC、修改IP地址等操作。服务器(发送广播消息端)示例代码:我这里设定的端口为10123,不是固定的。但是服务器往哪个端口发送广播消息,客户原创 2022-07-05 16:26:13 · 9696 阅读 · 1 评论 -
Qt、MinGW编译OpenCV 4.5.4(包含opencv_contrib)详细过程
Qt、MinGW、CMake编译OpenCV 4.5.4(包含opencv_contrib)详细过程目录Qt、MinGW、CMake编译OpenCV 4.5.4(包含opencv_contrib)详细过程(1)工具下载准备(2)CMake编译前配置(3)编译和安装(4)Qt使用Opencv4.5.4 测试(5)注意事项(1)工具下载准备CMake下载:https://cmake.org/download/,我使用的版本是3.22.3OpenCV源码下载:https://github.co原创 2022-03-17 10:37:15 · 14714 阅读 · 15 评论 -
Qt | 配置文件QSetting的使用方法
Qt | 配置文件QSettings的使用方法在主窗口的构造函数中创建配置文件:加载配置文件并设置到UI界面上显示:退出主窗体的时候保存配置文件:如果使用PyQt,析构函数是__del__,当窗口退出时,由于界面已经被销毁,如果在析构函数中进行保存设置,那么是不成功的,所以采取重新实现closeEvent方法即可,如下:主窗体的构造函数进行初始化:覆写closeEvent函数用于保存设置: def closeEvent(self, event): settings原创 2022-03-11 14:28:43 · 5696 阅读 · 0 评论 -
Qt | 关于QDialog右上角显示?按钮不显示最大化、最小化按钮问题
Qt关于QDialog右上角显示?按钮不显示最大化、最小化按钮问题QDialog默认设置是右上角只显示一个问号按钮和一个关闭窗口按钮,最大化、最小化按钮需要自己设置,下面以Python代码为例,C++代码步骤也是一样的: # 创建窗体 self.__MainWindow = QDialog() # 添加标记 winflags = Qt.Dialog # 添加最小化按钮 winflags |= Qt.Windo原创 2022-03-11 14:25:57 · 3747 阅读 · 2 评论 -
Qt | QTableView的使用方法
Qt | QTabelView的使用方法1、设置模型显示 # 创建3X3模型,如果不指定表格大小,那么他会根据标签的数量自行定义表格大小 model = QStandardItemModel(3, 3, self.__MainWindow) # 设置行标签 model.setHorizontalHeaderLabels(['编号', '姓名', '年龄']) # 设置列标签 model.setVertical原创 2022-03-11 14:22:49 · 10327 阅读 · 0 评论 -
Qt | 提示框QMessageBox的使用方法
Qt | 提示框QMessageBox的使用方法QMessageBox自定义了几个常用的消息框,常用的如下两个:1、警告消息窗python:QMessageBox.warning(self.__MainWindow, '标题', '我是文本', QMessageBox.Close)C++:QMessageBox::warning(this, '标题', '我是文本', QMessageBox.Close)2、信息提示消息窗python:QMessageBox.information原创 2022-03-11 14:21:13 · 16120 阅读 · 1 评论 -
Qt | QComboBox点击时自动更新列表(自动刷新QSerialPort)
Qt | QComboBox点击时自动更新列表(自动刷新QSerialPort)方法一实现方法:继承QComboBox,重载showPopup函数。Python代码:from PyQt5.Qt import *class QSerialComboBox(QComboBox): def __init__(self, parent=None): super().__init__(parent) def showPopup(self): name原创 2022-03-11 13:42:47 · 6234 阅读 · 0 评论 -
Qt | QSerialPort、QTcpSocket等QIODevice设备的跨线程调用报错解决办法以及多线程的使用
Qt | QSerialPort、QTcpSocket等QIODevice设备的跨线程调用报错解决办法以及多线程的使用1、问题描述相信很多使用Qt的朋友遇到过这个错误或者类似的错误:Cannot create children for a parent that is in a different thread.那么这个问题是怎么引起的呢?本篇文章以QSerialPort为例详细说说。在我们的多线程编程中,一般主线程负责界面的刷新显示,而子线程负责一些耗时的操作,例如当我们使用QSerialPo原创 2022-02-27 21:17:29 · 4010 阅读 · 14 评论 -
SerialPortPlotter:一款开源基于Qt实现的多通道串口示波器
SerialPortPlotter:一款开源基于Qt实现的多通道串口示波器目录SerialPortPlotter:一款开源基于Qt实现的多通道串口示波器1、软件简介2、软件使用方法1、软件简介基于github开源作者@CieNTi的二次开发,修改程序后重新编译。原作者github链接:https://github.com/CieNTi/serial_port_plotter我修改程序后的github链接:https://github.com/yzhengBTT/QtSerialPortPlott原创 2022-01-12 14:44:41 · 6962 阅读 · 13 评论 -
Qt | 利用QtChart实现动态曲线实时绘制显示
Qt | 利用QtChart实现动态曲线实时绘制显示前言QtCharts是Qt提供的图表模块,在Qt5.7以前只有商业版才有QtCharts,但是从5.7开始,社区版也包含了QtCharts。QtCharts可以很方便地绘制常见的折线图、柱状图、饼图等图表。相关类介绍1、QChart用于管理图表中的线、图例和轴的图形表示。可以简单理解为是一个画布。2、QChartView视图组件,无法单独进行显示,需要依附其他组件进行显示,如在窗口设计界面先放置一个QGraphicsView组件,然后升级为原创 2021-12-22 10:20:18 · 37922 阅读 · 25 评论 -
QT5.9.4 + opencv3.0.0编译配置
QT5.9.4 + opencv3.0.0编译配置安装QT5.9.4QT下载地址:http://download.qt.io/archive/qt/安装完毕之后将一下目录加入到系统环境变量:E:\Qt\Qt5.9.4\5.9.4\mingw53_32\binE:\Qt\Qt5.9.4\Tools\mingw530_32\bin下载opencv3.0.0源码包并解压下载地址:ht...原创 2018-10-16 18:19:37 · 1110 阅读 · 1 评论 -
QTcpServer和QTcpSocket使用详解
【Qt服务器与多线程使用】 ~~~~~~~~ QTcpServer致命缺点就是单线程!!要想实现多线程则需要继承该类之后重写incomingConnection函数,在该函数中将socketDescripto...原创 2019-06-18 16:05:39 · 3442 阅读 · 0 评论 -
Qt实现多线程编程的两种方式
Qt实现多线程编程的两种方式方式一: 继承自QThread类,覆写run函数。此实现方法只有run函数内的代码是运行在子线程内。代码示例:#ifndef QDEMOTHREAD_H#define QDEMOTHREAD_H#include <QThread>#include <QDebug>class QDemoThread : public QThread{ Q_OBJECTpublic: QDemoThread(QObject* pare原创 2020-10-11 11:29:31 · 5635 阅读 · 2 评论 -
error: undefined reference to `vtable for QDemoThread‘
问题描述: error: undefined reference to `vtable for XXXXXXXXXX‘出现原因:使用Q他的时候对于自行创建的类如果要支持信号和槽机制,必须要在类内头部位置添加Q_OBJECT宏,如果使用QtCteator创建类的时候没有继承QObject类或其子类,而是在创建类后手动添加的Q_OBJECT宏,编辑的时候就会报错!解决办法:方法1:创建类的时候继承自QObject类或其子类方法2:手动添加Q_OBJECT宏后,执行qmake,然后重新构建即可.原创 2020-10-11 10:45:54 · 153 阅读 · 0 评论 -
Qt设置应用程序图标、小图标显示+打包发布exe
Qt设置应用程序图标、小图标显示+打包发布exe目录Qt设置应用程序图标、小图标显示+打包发布exe(一)设置应用程序图标、小图标(二)打包发布exe程序(一)设置应用程序图标、小图标1、预先将生成好的xxx.ico图标文件放到当前工程源码目录下2、工程目录上右键->添加新文件->Qt->Qt Resource File,此时工程生成Resources文件夹下生成xxx.qrc文件,打开该文件,点击添加->添加前缀,此处的前缀在qt编写代码的时候充当的是路径的作用,可以把原创 2020-09-16 14:22:49 · 10002 阅读 · 2 评论 -
Qt控件使用方法技巧合集
Qt控件使用方法合集原创 2020-09-16 11:40:26 · 3312 阅读 · 0 评论