- 博客(103)
- 资源 (6)
- 收藏
- 关注

原创 VS2015中添加QT插件
1.打开VS2015,在菜单栏中选择“工具 - 扩展与更新”,然后选择左侧的联机,找到“QT Visual Studio Tools”下载安装,如下图所示2. 菜单栏 -> Qt Vs tools -> Qt options -> Add,添加如下路径环境变量配置: 这台电脑 -> 属性 -> 高级系统设置 -> 环境变量 ,添加Path变量:4.安装配置完成,可以创建一个实例进行测试。...
2020-05-25 09:13:35
3918
原创 Windows下libmodbus 支持upd库的编译与Qt里的调用
(2) 将modbus编译后生成的config.h 以及src目录下所有的.c .h 文件,全部复制到libmodbus目录中。链接:https://pan.baidu.com/s/1df3N5oDvQhApMNM2dNZcow。链接:https://pan.baidu.com/s/1m7sUtjGE-47a0wOJAYeETw。链接:https://pan.baidu.com/s/1nxcN9kIUVwSMTGGjjiMCUA。(8) 在main.cpp文件中编写如下代码,测试udp。
2023-09-26 11:17:43
559
1
原创 Timers cannot be started from another thread
Timers cannot be started from another thread
2022-09-08 08:32:50
1048
1
原创 QT PRO工程文件区分Debug和Release方法
pro文件内设置根据debug/release以及32/64位分别输出到不同目录:pro文件中 添加如下代码:
2022-07-14 13:15:18
2421
原创 QTimer定时器问题分析
QObject::killTimer: timers cannot be stopped from another thread原因:出现这个错误的原因在于在次线程中执行主线程对象的一些操作引起的使用定时器的注意事项不能跨线程启动定时器和停止定时器。不能跨线程启动一个定时器关联的对象,但在另一个线程释放此定时器关联的对象,即定时器相关的逻辑和对象只能用在一个线程中。例子分析://mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#
2022-04-28 17:47:22
4233
原创 Qt Creator 中使用VLD检测内存泄漏
下载VLD使用的VLD版本:vld-2.5.1-setup.exe下载地址:https://pan.baidu.com/s/1bhhrdfTB8hjqpR2xzPUyZQ提取码:a7g1安装VLD直接双击安装,选择安装位置,下一步,下一步即可。可选(应该不需要) 将D:\ProgramFiles\Qt\VLD\bin\Win32和D:\ProgramFiles\Qt\VLD\bin\Win64添加到系统环境变量path里。在QT中使用VLD本人使用的QT版本是QT5.14.2 MSVC20
2022-04-27 23:33:09
1846
2
转载 Qt Creator+MSVC开发环境搭建-MSVC调试器安装
MSVC调试器安装通过windows SDK工具安装调试器。工具下载地址:https://download.microsoft.com/download/4/2/2/42245968-6A79-4DA7-A5FB-08C0AD0AE661/windowssdk/winsdksetup.exe备用下载地址:链接:https://pan.baidu.com/s/1nscV6vBiU9tk8EciS-kxJg提取码:z2oz(1)下载完成后运行,默认,选择“Next”(2)默认,选择“Next”
2022-04-27 23:01:55
2987
原创 QT MSVC中文编译出错error: C2001: 常量中有换行符
Qt error: C2001: 常量中有换行符QT上用MSVC去编译部分含有中文的字符串时会出现编译错误error: C2001: 常量中有换行符解决方法:1、设置是工具->选项->文本编辑器->行为->UTF-8 BOM设置成“如果编码是UTF-8则添加”2、在头文件或.cpp文件,加上#pragma execution_character_set(“utf-8”)3、使用记事本打开文件,另存文件为带BOM头 utf-8 格式...
2022-04-22 11:41:08
1548
原创 VS2017 注释快捷键修改
1、工具 -> 选项2、环境 - 键盘3、显示命令包含 - 注释 - 编辑:注释选定内容焦点放到按快捷键下的方框内,同时按下Ctrl 和 / 键,点击分配按钮即可4、显示命令包含 - 注释 - 编辑:取消注释选定内容...
2022-04-19 15:37:24
932
原创 QT多线程同步之QWaitcondition
使用到多线程,无可避免的会遇到同步问题,qt提供几种同步线程的方法,在这里讲一下QWaitcondition的简单使用。一、QWaitcondition,是通过一个线程达到某种条件来唤起另一个线程来实现同步的mutex.lock();waitcondition.wait(&mutex);需要用到一个互斥量作为参数,而这个互斥量的状态必须是locked的。当调用这一句waitcondition.wait(&mutex) 在等待触发条件的时候,此时的mutex已经被设置为unloc
2022-03-24 09:12:11
1606
原创 C++中指针和引用的区别
1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。而下面2句定义了一个整形变量a和这个整形a的引用b,事实上a和b是同一个东西,在内存占有同一个存储单元。(2)引用不可以为空,
2022-03-23 21:50:05
960
原创 QCustomPlot常用操作
QCustomPlot获取当前窗口X坐标轴最大最小值double left = ui->widget_time->xAxis->range().upper;double right = ui->widget_time->xAxis->range().lower;
2022-03-17 10:06:58
473
原创 QT windows dpi变化导致的界面异常处理
对高分屏不同缩放比例的自适应处理方法//方法1:在main函数的最前面加上下面这句 5.6版本才开始有这个函数#if (QT_VERSION > QT_VERSION_CHECK(5,6,0)) QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);#endif//方法2:在可执行文件同目录下新建文件 qt.conf 填入下面内容[Platforms]WindowsArguments = dpiawareness=0
2022-02-15 14:41:39
3429
2
原创 Qt-c++桌面编程报错:qt.qpa.plugin: Could not find the Qt platform plugin “windows“ in
问题:Qt-c++桌面编程报错:qt.qpa.plugin: Could not find the Qt platform plugin “windows” in “”原因:在window里的直接运行QtCreator IDE编译的软件时,相关依赖库找不到,就报错了解决:在cmd里用“windeployqt”命令运行: windeployqt xxx.exe ,会将相关依赖全部打包好,复制到当前运行文件夹里,...
2022-02-10 11:31:56
1466
原创 QCustomPlot绘图并设置游标,双游标
最终实现功能:1.鼠标单击生成游标(两个游标在一起),并随着鼠标移动而移动。2.鼠标双击固定第一个游标,第二个游标仍可随着鼠标移动而移动。3.鼠标再次双击固定第二个游标。4.起始,结束编辑框分别显示第一个游标和第二个游标的位置信息。头文件添加两个游标对象,画图函数和三个鼠标点击,双击,移动槽函数如下:class CursorDialog : public QDialog{ Q_OBJECTpublic: explicit CursorDialog(QWidget *par.
2022-01-07 15:16:06
5971
3
原创 静态html页面如何兼容pc和移动端
**静态html页面如何兼容pc和移动端**在“test.html”文件中的head之间,录入如下代码:;ui->tableWidget->setRowCount(10);ui->tableWidget->setHorizontalHeaderLabels(QStringList() << “Id” << “Name” << “Unit” << “Value” << “Min” <<
2021-12-01 14:49:26
2484
原创 QTextEdit:仅当滚动条位于底部时自动向下滚动
在添加文本之前查询滚动条 QScrollBar *scrollbar = ui->text_accept->verticalScrollBar(); bool scrollbarAtBottom = (scrollbar->value() >= (scrollbar->maximum() - 50)); int scrollbarPrevValue = scrollbar->value(); QTextCursor cursor = ui
2021-11-10 09:05:29
1369
原创 QTableWidget 常见用法总结(一)
QTableWidget设置单元格不可编辑for(int iRow = 0; iRow < rowCount; ++ iRow){for(int iColumn = 0; iColumn < columnCount; iColumn ++){ui->tableWidget->item(iRow, iColumn)->setFlags(ui->tableWidget->item(iRow, iColumn)->flags() & ~Qt::It
2021-10-16 11:04:10
889
转载 深入理解C++在.h头文件中定义函数导致的multiple definition
问题:某个头文件中声明并定义了一个函数,然后在多个源码文件中调用该函数,编译链接时出现了该函数multiple definition问题,在头文件中添加了 #ifndef 头也不行,经过尝试发现如果将该函数的声明和定义分开到.h和.cpp文件之后问题消失,为什么不能将函数直接定义在.h文件中呢?针对该问题,抽象出如下几个问题:1头文件中只可放置函数声明,不可放置函数定义吗?以下面的程序为例:// a.h#ifndef __a_h__#define __a_h__void funcA(void)
2021-10-12 09:15:23
2405
1
原创 char[4]转int或int转char
**4个char转int方法:**默认int占4个字节 char c1 = 'a';char c2 = 'b';char c3 = 'c';char c4 = 'd';int i = (c4) + (c3 << 8) + (c2 << 16) + (c3 << 24); 数组形式:char c[5] = "abcd";int i = 0;memcpy(&i, c, 4);int转char方法:1)用库函数itoaint a =
2021-10-08 17:41:54
1306
原创 Qt MSVC 2017 32bit 编译出现“error: C2131: 表达式的计算结果不是常数”错误
在MinGW 32bit下正常编译的qint64 fileLen = dstFile.size();char fileBuffer[fileLen];切换成MSVC 2017 32bit 编译后提示:报:error: C2131: 表达式的计算结果不是常数原因是在MSVC编译器中,定义数组时尺寸是不能用变量的。int b[] = { 1,2,3,4 }; 或者 int b[4] = { 1,2,3,4 };下面这样写就可以: qint64 fileLen = dstFile.size();
2021-09-24 15:08:14
2865
原创 MSVC编译器-C2001 常量中有换行符错误解决方法
解决方法:主要是由于MSVC2015编译器不支持其他类型的编码格式,需要把工程文件修改成UTF-8 带签名!!,UTF-8 无签名也是不行的。使用记事本 将文件另存为带 BOM头格式
2021-09-24 14:54:40
358
原创 C 语言基础
枚举变量的定义前面我们只是声明了枚举类型,接下来我们看看如何定义枚举变量。我们可以通过以下三种方式来定义枚举变量1、先定义枚举类型,再定义枚举变量enum DAY{ MON=1, TUE, WED, THU, FRI, SAT, SUN};enum DAY day;2、定义枚举类型的同时定义枚举变量enum DAY{ MON=1, TUE, WED, THU, FRI, SAT, SUN} day;3、省略枚举名称,直接定义枚举变量enum{
2021-09-22 11:07:10
77
原创 Qt CRC16-Modbus计算校验码-查表法
CRC校验代码const quint8 crcHi[]= { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80
2021-09-07 14:05:37
1572
原创 QString unsigned char * 相互转换
Qt unsigned char *与QString之间的相互转换//unsiged char *转QStringunsigned char *str = "fdd" ;char *str1 = (char *)str;QString str2 = QString(QLatin1String(str1));//QString 转化成char *QString str = "fdd";QByteArray ba = str.toLatin1();unsigned char * str1
2021-09-07 13:57:44
5938
1
原创 QT QString中去除空格的
去除字符串前面空格使用正则表达式:QSring.remove(QRegExp("^ +\s*"));实例:QString str = " aa ";//字符串aa前后各三个空格str.remove(QRegExp("^ +\\s*"));//运行结果: str="aa ";去除字符串后面空格使用正则表达式:QSring.remove(QRegExp("\s* +$"));实例:QString str = " aa ";//字符串aa前后各三个空格str..
2021-09-07 13:07:00
908
原创 QPushButton 设置背景图、QToolTip,出现文本与背景重叠问题
对按钮设置背景图:ui->btnAdd->setStyleSheet(“border-image:url(”:/image/btnAddSample.png);");同时设置tooltipui->btnAdd->setToolTip(QObject::tr(“新增样品”));鼠标经过按钮时候,会出现背景与文本重叠现象如果要改为 鼠标经过按钮时,只提示文本,做法如下:btnAdd->setIcon(QIcon(":/res/button.png"));btnAdd
2021-09-03 09:05:44
1217
转载 限制QLineEdit的数值输入范围
在使用QLineEdit输入数值时,经常遇到限制其范围的需要,比如角太阳高度角范围为[-90,90],经度值范围[-180,180],方位角范围[0,360]。Qt提供了QIntValidator和QDoubleValidator可以限定数值输入范围,如使用QIntValidator限制整数的数值范围:例1:lineEdit->setValidator(new QIntValidator(0, 1000, this));例2:lineEdit->setValidator(new QDou
2021-08-19 19:36:21
2365
原创 QT VS2017 源码调试出现Qt5cored.pdb 解决方法
=======异常代码 内存越界 示例代码int* p = NULL;*p = 13;QT5 VS2017 源码调试出现Qt5cored.pdb等 解决方法首先明确你的版本,然后修改下面中连接的版本号,5142代表5.14.2版本。https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5142/下载.pdb文件下载地址:https://download.qt.io/online/qtsdkrepositor
2021-08-05 08:29:47
2362
4
原创 .pro文件转.vcproj文件(QtCreater项目转VS+Qt项目)
1、打开Qt命令行工具通常情况下,它在Windows开始菜单栏下,例如:2、进入.pro文件所在文件夹3、生成vcproj文件3.1、xx.pro存在TEMPLATE = subdirs时使用qmake -r -tp vc xx.pro3.2、其他情况qmake -tp vc xx.pro或qmake -t vcapp xx.pro4、效果演示操作前:操作后:...
2021-08-03 14:51:42
373
转载 Inno setup 打包教程
1、安装 inno setup 软件本人安装的是 6.0.52. 打开软件在弹出的 “欢迎” 对话框中点击 “取消”,便可看到 Inno Setup 编译器的主界面3.根据向导进行打包操作在主界面菜单中,点击 “文件” → “新建”在弹出的 “Inno Setup 脚本向导” 对话框中点击 “下一步”在弹出的 “应用程序信息” 对话框里填写要制作程序 “安装包” 信息,点击“下一步” 弹出 “应用程序文件夹”;“应用程序文件夹” 对话框如下图(一般默认即可)点击 “下一步” 弹
2021-07-22 14:09:28
7565
1
转载 Qt CuteLogger 日志输出文件
Qt 开发过程中,我们经常使用qDebug()来输出一条调试信息,但是,等软件正式发布之后,我们就需要软件运行日志功能,使用日志功能,能够快速的进行异常错误的跟踪和定位。也能查看软件运行的情况。Qt的日志工具有很多,log4cplus、log4cxx,Log4Qt等等,当然,也可以采用Qt的消息输出,重定向到日志文件,就可以实现一个简单的日志记录系统。具体可参考:使用Qt实现简单的日志记录功能(qInstallMessageHandler)下面,介绍一个 CuteLogger :基于Qt的应用程序的快速
2021-07-14 11:59:05
332
原创 Qt 点击按钮等待某个结果返回
eg:int try_count=0;while(try_count<10){//判断代码//休眠1.5秒QEventLoop loop;QTimer::singleSlot(1.5*1000,&loop,SLOT(quit()));loop.exit();try_count++;}
2021-07-14 09:23:30
958
原创 QT 防止按钮快速重复点击
void MainWindow::on_switch_clicked(){ui->switch->setEnabled(false);QTimer::singleShot(1000, this, = {ui->switch->setEnabled(true);});}
2021-07-09 10:23:48
1855
2
原创 CRC8 位校验
static const uint8_t crc8_table[256] ={0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31,0x24, 0x23, 0x2a, 0x2d, 0x70, 0x77, 0x7e, 0x79, 0x6c, 0x6b, 0x62, 0x65,0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d, 0xe0, 0xe7, 0xee, 0xe9,
2021-07-08 09:57:12
1435
1
原创 移位操作 如何读取位数据的某几位
单独第n位:(val&(0x1<<n))>>n取连续几位: (val&(0x07<<n))>>n0-2: (val&0x07)>>01-3: (val&0x0e)>>12-4: (val&0x1c)>>23-5: (val&0x38)>>34-6: (val&0x70)>>45-7L (val&0xe0)>
2021-07-06 10:13:30
597
R720 安装win 2003教程与所需资源
2014-06-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人