道亦无名
王阳明曰: 立志 勤学 改过 择善
我曰: flag practice debug release
展开
-
QT限制lineEdit的的IP地址处理方法
【代码】QT限制lineEdit的的IP地址处理方法。原创 2024-02-01 00:30:00 · 722 阅读 · 0 评论 -
qt 判断文件是否存在
类来判断一个文件是否存在。以下是一个简单的示例代码,展示了如何使用。函数接受一个文件名作为参数,并返回一个布尔值,指示文件是否存在。方法用于检查文件是否存在。为你要检查的实际文件路径。在 Qt 中,你可以使用。原创 2024-01-22 08:51:14 · 174 阅读 · 0 评论 -
Qt编写的心跳检测客户端程序
这个程序使用QTcpSocket类来建立一个TCP连接,并发送和接收心跳检测请求和响应。它发送一个包含"heartbeat"消息的请求,并等待响应。如果响应包含"heartbeat"消息,则认为心跳检测成功;如果响应包含"timeout"消息,则认为心跳检测超时;如果响应包含其他消息,则将其视为未知消息。Qt是一个跨平台的C++图形用户界面库,可以用来开发GUI应用程序。原创 2023-11-06 14:18:27 · 381 阅读 · 0 评论 -
qt手撕菜单栏
就写了一个简单的程序,供大家参考!最近有个项目需要手写菜单栏。原创 2023-11-03 08:18:09 · 230 阅读 · 0 评论 -
QT mysql 数据定时插入数据代码
注意:在上述代码中,需要替换数据库连接信息、数据库表名、列名以及需要插入的值。在生产环境中使用时,请确保处理可能出现的错误,并采取适当的安全措施,例如使用参数绑定来防止SQL注入攻击。要在Qt中定时插入MySQL数据,需要使用QTimer来触发一个信号,然后连接这个信号到一个槽来完成数据插入。首先,确保已经安装了Qt库和MySQL驱动程序,并在你的项目中包含了对应的头文件。下面是一个简单的Qt定时器,当定时器触发时,它将插入新的数据到MySQL数据库中。原创 2023-10-09 20:12:20 · 105 阅读 · 0 评论 -
QT 实现mysql的长连接
对象并调用相关函数来进行数据库连接、查询和断开连接操作。请注意,需要根据实际情况修改连接信息和查询语句。函数用于执行SQL查询操作。在主函数中,我们创建了一个。两个公共槽函数,用于建立和断开数据库连接。类来处理MySQL长连接。原创 2023-10-09 10:11:56 · 515 阅读 · 0 评论 -
QT chart进行画图
使用 QT Chart,你可以通过简单的代码来创建和配置图表,然后将其显示在应用程序的窗口中。它提供了丰富的 API,可以自定义图表的外观和行为,包括轴标签、图例、颜色、线型等等。QT Chart 是一个用于在 Qt 应用程序中绘制图表的开源库。它提供了多种类型的图表,如线图、柱状图、饼图等,可以用于可视化数据和统计信息。QT Chart 是一个基于 Qt 绘图框架的扩展,可以轻松集成到现有的 Qt 应用程序中。如果你想要在你的 Qt 应用程序中添加图表功能,QT Chart 是一个值得考虑的选择。原创 2023-07-29 16:06:34 · 956 阅读 · 0 评论 -
qt 3个线程处理 防止出现死锁
在这个示例中,我们创建了一个 MyObject 类,并在其中定义了一个 doTask() 槽。我们使用 QThread 类创建了三个线程,并将 MyObject 对象移动到不同的线程中。我们使用 connect() 函数将线程的 finished() 信号连接到对象的 doTask() 槽。在 Qt 中,可以使用 QThread 和moveToThread() 方法将任务转移到不同的线程中执行,以避免死锁问题的出现。这样,我们就可以使用三个线程来处理任务,并避免出现死锁问题。原创 2023-06-29 21:15:00 · 603 阅读 · 0 评论 -
qt 多线程加定时器的处理
在上面的例子中,MyThread类继承自QThread,并在run()函数中创建了一个定时器。最后,调用exec()函数进入线程的事件循环,等待定时器的触发。在实际应用中,可以根据具体需求来设置定时器的触发时间和触发方式,并在槽函数中处理相应的任务。同时,需要注意线程安全和信号槽的连接方式,以避免出现竞态和死锁等问题。当定时器触发时,可以调用相应的槽函数来处理定时器事件。在QThread的子类中,可以重写run()函数来定义线程的行为。在Qt中,可以使用多线程和定时器来处理一些实时任务或者周期性的任务。原创 2023-06-29 08:08:34 · 1875 阅读 · 0 评论 -
qt 编写一个动态图的效果
在这个示例中,我们创建了一个自定义的QLabel子类DynamicWidget,并在其中重写了paintEvent()函数来绘制当前帧的图像。我们使用QTimer类来触发下一帧的绘制,并使用QPixmap类来加载图像帧。在这个示例中,我们在下一帧函数中使用QPainter类来绘制一个红色的圆形,实现了一个简单的动画效果。您可以根据需要调整图像帧的加载和绘制方式,实现不同的动画效果。要在Qt中编写一个动态图的效果,您可以使用QTimer和QPainter类来实现。原创 2023-06-29 07:49:51 · 1186 阅读 · 0 评论 -
qt 编写吐司的效果
在上面的代码中,首先创建了一个QSystemTrayIcon对象,然后设置了图标。接着,调用show()函数显示系统托盘图标。然后,创建了一个QMenu对象和QAction对象,并将QAction对象添加到菜单中。最后,使用setContextMenu()函数将菜单设置到系统托盘中。当用户单击系统托盘图标时,将显示菜单。如果用户选择“Exit”菜单项,则应用程序将退出。在Qt中,可以使用QSystemTrayIcon类来实现系统托盘的功能。原创 2023-06-29 07:48:05 · 829 阅读 · 0 评论 -
qt实现系统托盘的功能
在上面的代码中,首先创建了一个QSystemTrayIcon对象,然后设置了图标。接着,调用show()函数显示系统托盘图标。然后,创建了一个QMenu对象和QAction对象,并将QAction对象添加到菜单中。最后,使用setContextMenu()函数将菜单设置到系统托盘中。当用户单击系统托盘图标时,将显示菜单。如果用户选择“Exit”菜单项,则应用程序将退出。在Qt中,可以使用QSystemTrayIcon类来实现系统托盘的功能。原创 2023-06-27 20:00:00 · 710 阅读 · 0 评论 -
qt 实现定时器中断
需要注意的是,在使用 QTimer 时,需要确保定时器在正确的上下文中运行。例如,如果需要在 GUI 线程之外的线程中使用 QTimer,需要将 QObject::connect() 调用放在适当的线程中。在上面的例子中,每当 QTimer 的时间间隔到达时,就会触发 timeout() 信号,从而执行连接的中断函数。首先,创建一个 QTimer 对象,并设置定时器的时间间隔和重复次数(如果需要)。然后,连接 QTimer 的 timeout() 信号到要执行的中断函数。原创 2023-06-27 19:30:00 · 785 阅读 · 0 评论 -
无法打开包括文件: “QtDataVisualization”: No such file or directory的解决方法
我使用的是https://download.qt.io/archive/qt/5.12/5.12.2/submodules/下面的。这个就是本地没有安装datavisualization,需要下载相应模块,下载对应自己QT版本的相应模块。最后的头文件和库文件都放在qt的库安装路径下面的就可以解决了。下载下来,进行解压,然后使用qt对应的编译器进行编译。在QT 的pro中加入。原创 2023-06-16 09:25:19 · 829 阅读 · 0 评论 -
qt 的相关知识点
Qt是一种跨平台的C++应用程序开发框架,最初由挪威Trolltech公司(现已被Digia公司收购)开发,现在由The Qt Company维护。Qt的不断发展使得它成为了一种被广泛使用的跨平台开发框架,被用于开发各种类型的应用程序,包括桌面应用程序、移动应用程序、嵌入式系统等。2011年,Qt 5.0发布,引入Qt Quick 2.0、Qt WebEngine等新特性,支持Android和iOS平台。2018年,Qt 5.11发布,引入Qt for Python等新特性,支持嵌入式Linux平台。原创 2023-03-31 18:00:00 · 954 阅读 · 0 评论 -
qt 软件拖动有重影解决办法
可能是由于QT的绘图机制导致的,可以尝试以下几种方法解决:原创 2023-03-29 10:50:44 · 741 阅读 · 0 评论 -
使用 Qt 调用 Excel
心如何使用 Qt 操作 COM 组件,比如在 Excel 里插入新数据,这个新增功能就很重要了。然而不幸的是,在 Internet 上没有太多这方面的主题可以借鉴。如果插入的数据很大,会花费很多的时间。通常 Qt 自带的例子可以告诉大家一些常用的知识点。这里我们通过代码构建了一个对象,并通过对象打开了 Excel。不记得在哪里看过,说一个好的文档应当是用户看过后不再存在不解的地方。结构信息,我在 Google 上寻找了不短的时间,也没有太多的结果。第一步,我们来引入 Excel,并创建一个对象。原创 2022-10-23 18:52:24 · 1487 阅读 · 0 评论 -
使用QT来进行谐波绘制
通用型的代码都在里面。原创 2022-09-03 16:22:48 · 870 阅读 · 0 评论 -
QT 设置文本框的边框线颜色和粗细
使用qt desinger进行qss设置。原创 2022-08-26 21:15:00 · 1296 阅读 · 0 评论 -
Qt Debug重定向到文本控件
Qt中可以将qDebug()输出的信息重定向通过窗口控件输出;原创 2022-08-04 21:00:00 · 1191 阅读 · 0 评论 -
QStackedWidget的使用
QStackedWidget类提供了一个小部件堆栈,其中一次只能看到一个小部件。QStackedWidget可用于创建类似于QTabWidget提供的用户界面。它是一个构建在QStackedLayout类之上的方便的布局小部件。与QStackedLayout类似,QStackedWidget可以用许多子Widget(“页面”)构建和填充:例如下面的:QStackedWidget不提供用户切换页面的内在方式。这通常通过QComboBox或QListWidget来完成,QListWidget存储QStac原创 2022-07-14 21:00:00 · 814 阅读 · 0 评论 -
QT做一个按钮Qpushbutton 倒计时功能的小小程序
QPushbutton添加倒计时,一定时间内选择确定或者取消,否则倒计时结束,默认选择确定。主要的代码如下:头文件如下:运行效果如下原创 2022-07-12 20:32:03 · 561 阅读 · 0 评论 -
qt字符与16进制转换
代码如下:原创 2022-07-05 15:45:32 · 552 阅读 · 0 评论 -
线程安全的事件传递
在 Qt 中,一个线程总是一个事件线程,线程从窗口系统中拉出事件并且把它们分发给窗口部件。静态方法QThread::postEvent 从线程中 邮递事件,而不是从事件线程。事件线程被唤醒并且事件象一个正常窗口系统的事件一样在事件线程中被分发。例如,你可以从不同的线程强制一个窗口部件进行重 绘,方法如下:上述代码将异步地使 mywidget 在它区域中重绘一块 100*100 的正方形区域。另外,还需要一些机制使得处于等待状态的线程在给定条件下被唤醒。QWaitCondition 类就提供了这种功能。 线原创 2022-06-13 07:42:06 · 121 阅读 · 1 评论 -
Qt uchar *转 Hex的QString方法代码
具体代码如下:QString bytesToHex( u_char* str, int size, QString &qstring){ for (int i = 0; i < size; i++) { u_char tempOne = (unsigned char)str[i] >> 4; if (tempOne >= 0x0a) { tempOne = 0x41 - 0x0A;原创 2022-05-18 20:00:00 · 1161 阅读 · 0 评论 -
QT 进行批量创建checkBox的方法
用UI设计固然好,但是大部分情况我们需要使用代码自动创建的。以下就是使用代码批量创建的方法:#include "mainwindow.h"#include "ui_mainwindow.h"#include <QCheckBox>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){ initUI(); ui->setupUi(原创 2022-05-12 17:38:44 · 942 阅读 · 0 评论 -
SV报文解析看看这一篇就足够了
SV报文在网络上传输时采用的是OSI模型,但只用到OSI网络模型七层中的四层,应用层、表示层、数据链路层和物理层,传输层和网络层为空。应用层定义协议数据单元PDU,经过表示层编码后,不采用TCP/IP协议,而是直接映射到数据链路层和物理层。这种映射方式的目的是避免通信堆栈造成传输延时,从而保证报文传输、处理的快速性。SV报文在MAC层的帧结构包括:源MAC地址、目的地址即组播地址、报文类型、四字节Tag、APPID、报文长度、四字节的保留和VPDU。SV具体报文格式如图0所示。SV举例报文(十六进制)原创 2022-05-10 19:30:00 · 3163 阅读 · 0 评论 -
QbyteArray转vector<char>的方法
代码如下: vector<uint8> data (bytearray.begin(),bytearray.end());一句话就可以解决。原创 2022-05-06 20:30:00 · 628 阅读 · 0 评论 -
QbyteArray转vector<char>的方法
代码如下: vector<uint8> data (bytearray.begin(),bytearray.end());一句话就可以解决。原创 2022-05-08 08:00:00 · 1085 阅读 · 0 评论 -
Qt的5个级别事件处理和事件过滤方法
QT 提供了5个级别的事件处理和事件过滤的方法,如下:重新实现特殊事件处理器比如: mousePressEvent(), keyPressEvent(), paintEvent() 。 这是最常规的事件处理方法。重新实现QObject::event()这一般用在Qt没有提供该事件的处理函数时。也就是,我们增加新的事件时。 这一般用在Qt没有提供该事件的处理函数时。也就是,我们增加新的事件时。在QObject中安装事件过滤器在QApplication对象中安装事件过滤原创 2022-05-03 17:20:07 · 485 阅读 · 0 评论 -
Qtabwidget 的索引信号与槽
界面如下:代码如下:#include "mainwindow.h"#include "ui_mainwindow.h"#include <qDebug>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){ ui->setupUi(this); connect(ui->tabWidget, &QTabWidget原创 2022-04-27 23:30:00 · 942 阅读 · 0 评论 -
QT中的时间转换代码
#include "mainwindow.h"#include "ui_mainwindow.h"#include <qDebug>#include <QDateTime>#include <QMessageBox>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){ ui->setupUi(this);原创 2022-04-17 13:55:46 · 226 阅读 · 0 评论 -
qt执行定时结束任务的方法代码
代码如下:#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QTimer>QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACEclass MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWindow(QWid原创 2022-04-09 22:15:00 · 820 阅读 · 0 评论 -
QTableView设置常见设置总结
Qt QTableView数据列宽度自适应, 横向填满表格 ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); ui->tableView->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);QTableView 获取当前选中行 QModelIndexList list = u原创 2022-03-29 23:15:00 · 976 阅读 · 1 评论 -
QSerialPort打开失败的问题
看英文解释就好了bool QIODevice::isOpen() constReturns true if the device is open; otherwise returns false. A device is open if it can be read from and/or written to. By default, this function returns false if openMode() returns NotOpen.在使用之前进行判断一下就好了返回值为true,原创 2022-03-24 14:40:33 · 1845 阅读 · 0 评论 -
QByteArray遍历的方法
QByteArray ba("Hello world"); char *data = ba.data(); while (*data) { cout << "[" << *data << "]" << endl; ++data; }原创 2022-02-21 22:00:00 · 1784 阅读 · 0 评论 -
QDialog中显示QtableWidget的实现
代码如下:void MainWindow::action1_sqlite(){ m_dialog1 = new QDialog(this); m_dialog1->setFixedSize(QSize(800,800)); m_dialog1->setWindowTitle(tr("sqlite 数据")); QTableWidget *m_tablewidget = new QTableWidget(m_dialog1); QRect m_rect(100,原创 2022-02-11 00:00:00 · 552 阅读 · 0 评论 -
Qt创建桌面快捷方式
windows下的快捷方式和开始菜单创建代码如下://建立桌面快捷方式 QString strAppPath = "C:/Windows/System32/notepad.exe"; QString strDesktopLink = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + "/"; strDesktopLink += "notepad.lnk"; QFile App(strAp原创 2021-10-13 23:30:00 · 1730 阅读 · 0 评论 -
Ubuntu qt clion 配置
CMakeList.txt如下:cmake_minimum_required(VERSION 3.20)project(qttest)set(CMAKE_CXX_STANDARD 14)set(CMAKE_AUTOMOC ON)set(CMAKE_AUTORCC ON)set(CMAKE_AUTOUIC ON)set(CMAKE_INCLUDE_CURRENT_DIR ON)find_package(Qt5 COMPONENTS Qt5Widgets R原创 2021-10-13 00:00:00 · 308 阅读 · 0 评论 -
XPutImage解析
XPutImage (display, d, gc, image, src_x, src_y, dest_x, dest_y, width, height)Display *display; //display 指定到 X 服务器的连接。Drawable d; //d 指定可绘制对象。GC gc; //指定 GC。XImage *image; //image 指定要与矩形组合的图像。int src_x; //指定 XImage 结构定义的图像左边缘的 X 偏移。int src_y;原创 2021-10-11 11:55:08 · 576 阅读 · 0 评论