qt
圆月山庄
这个作者很懒,什么都没留下…
展开
-
Timers cannot be started from another thread
Timers cannot be started from another thread原创 2022-09-08 08:32:50 · 792 阅读 · 2 评论 -
Qt 网络发送带中文字符串
代码】Qt 网络发送带中文字符串。原创 2022-08-17 19:30:40 · 602 阅读 · 0 评论 -
QT PRO工程文件区分Debug和Release方法
pro文件内设置根据debug/release以及32/64位分别输出到不同目录:pro文件中 添加如下代码:原创 2022-07-14 13:15:18 · 1905 阅读 · 0 评论 -
QTimer定时器问题分析
QObject::killTimer: timers cannot be stopped from another thread原因:出现这个错误的原因在于在次线程中执行主线程对象的一些操作引起的使用定时器的注意事项不能跨线程启动定时器和停止定时器。不能跨线程启动一个定时器关联的对象,但在另一个线程释放此定时器关联的对象,即定时器相关的逻辑和对象只能用在一个线程中。例子分析://mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#原创 2022-04-28 17:47:22 · 3534 阅读 · 0 评论 -
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 · 1431 阅读 · 0 评论 -
QT多线程同步之QWaitcondition
使用到多线程,无可避免的会遇到同步问题,qt提供几种同步线程的方法,在这里讲一下QWaitcondition的简单使用。一、QWaitcondition,是通过一个线程达到某种条件来唤起另一个线程来实现同步的mutex.lock();waitcondition.wait(&mutex);需要用到一个互斥量作为参数,而这个互斥量的状态必须是locked的。当调用这一句waitcondition.wait(&mutex) 在等待触发条件的时候,此时的mutex已经被设置为unloc原创 2022-03-24 09:12:11 · 1533 阅读 · 0 评论 -
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 · 299 阅读 · 0 评论 -
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 · 2739 阅读 · 1 评论 -
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 · 1277 阅读 · 0 评论 -
QCustomPlot绘图并设置游标,双游标
最终实现功能:1.鼠标单击生成游标(两个游标在一起),并随着鼠标移动而移动。2.鼠标双击固定第一个游标,第二个游标仍可随着鼠标移动而移动。3.鼠标再次双击固定第二个游标。4.起始,结束编辑框分别显示第一个游标和第二个游标的位置信息。头文件添加两个游标对象,画图函数和三个鼠标点击,双击,移动槽函数如下:class CursorDialog : public QDialog{ Q_OBJECTpublic: explicit CursorDialog(QWidget *par.原创 2022-01-07 15:16:06 · 5263 阅读 · 3 评论 -
Inno Setup软件 打包多个安装包程序
vc_redist.x64…exe 文件放在cod.exe 所在目录[Files]Source: “你要打包的软件目录\COD.exe”; DestDir: “{app}”; Flags: ignoreversionSource: “你要打包的软件目录\vc_redist.x64…exe”; DestDir: “{app}”; Flags: ignoreversion[Run]Filename:“"{app\vc_redist.x64.exe”;Flags: nowait skipifsilent原创 2021-12-01 16:59:51 · 2797 阅读 · 0 评论 -
Qt下QTableWidget 基本用法
QTableWidget的基本设置设置表头ui->tableWidget->setColumnCount(11);ui->tableWidget->setRowCount(10);ui->tableWidget->setHorizontalHeaderLabels(QStringList() << “Id” << “Name” << “Unit” << “Value” << “Min” <<原创 2021-12-01 14:49:26 · 2284 阅读 · 0 评论 -
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 · 1189 阅读 · 0 评论 -
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 · 787 阅读 · 0 评论 -
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 · 1284 阅读 · 0 评论 -
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 · 5125 阅读 · 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 · 806 阅读 · 0 评论 -
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 · 1068 阅读 · 0 评论 -
限制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 · 2235 阅读 · 0 评论 -
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 · 1965 阅读 · 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 · 278 阅读 · 0 评论 -
Inno setup 打包教程
1、安装 inno setup 软件本人安装的是 6.0.52. 打开软件在弹出的 “欢迎” 对话框中点击 “取消”,便可看到 Inno Setup 编译器的主界面3.根据向导进行打包操作在主界面菜单中,点击 “文件” → “新建”在弹出的 “Inno Setup 脚本向导” 对话框中点击 “下一步”在弹出的 “应用程序信息” 对话框里填写要制作程序 “安装包” 信息,点击“下一步” 弹出 “应用程序文件夹”;“应用程序文件夹” 对话框如下图(一般默认即可)点击 “下一步” 弹转载 2021-07-22 14:09:28 · 7304 阅读 · 1 评论 -
Qt CuteLogger 日志输出文件
Qt 开发过程中,我们经常使用qDebug()来输出一条调试信息,但是,等软件正式发布之后,我们就需要软件运行日志功能,使用日志功能,能够快速的进行异常错误的跟踪和定位。也能查看软件运行的情况。Qt的日志工具有很多,log4cplus、log4cxx,Log4Qt等等,当然,也可以采用Qt的消息输出,重定向到日志文件,就可以实现一个简单的日志记录系统。具体可参考:使用Qt实现简单的日志记录功能(qInstallMessageHandler)下面,介绍一个 CuteLogger :基于Qt的应用程序的快速转载 2021-07-14 11:59:05 · 223 阅读 · 0 评论 -
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 · 858 阅读 · 0 评论 -
QT 防止按钮快速重复点击
void MainWindow::on_switch_clicked(){ui->switch->setEnabled(false);QTimer::singleShot(1000, this, = {ui->switch->setEnabled(true);});}原创 2021-07-09 10:23:48 · 1654 阅读 · 2 评论 -
Qt中在控件上绘图
参考 https://blog.csdn.net/u011555996/article/details/108134860原创 2021-06-28 14:20:08 · 320 阅读 · 0 评论 -
QThread的用法
https://blog.csdn.net/t46414704152abc/article/details/52133377转载 2021-06-19 11:39:24 · 86 阅读 · 0 评论 -
QString 转double,double转QString 互转
QString 转double,double转QString 互转将double数据写入excel 去除科学计数法1.double 转QString 小数点问题double data = 40.215586810458;QString str = QString::number(data,‘f’,10); // f 表示非科学记数法 10表示小数点后保留10位2.QString 转 double 小数点问题#include QString num(“12.3456789”);doub原创 2021-06-08 17:50:39 · 10777 阅读 · 0 评论 -
Qt面试题整理
https://blog.csdn.net/xpg4321/article/details/101278293原创 2021-06-05 16:25:38 · 1482 阅读 · 1 评论 -
QT QTextEdit/QTextBrowser append() 函数换行解决方法
QTextCursor tc = ui->textRec->textCursor();tc.movePosition(QTextCursor::End);tc.insertText(appendStr);或者 ui->textRec->append(“testing”);原创 2021-06-03 18:06:32 · 3004 阅读 · 0 评论 -
Qt5获取windows下除去任务栏后的屏幕高度
头文件添加:#include “windows.h”引用windows API获取除去任务栏后的高度和宽度:int width = GetSystemMetrics(SM_CXFULLSCREEN);int height = GetSystemMetrics(SM_CYFULLSCREEN);原创 2021-04-24 14:11:32 · 888 阅读 · 0 评论 -
qt 使用Qt Installer Framework 制作安装包
安装包制作过程 参考https://blog.csdn.net/mars_xiaolei/article/details/83825447安装包配置示例工程生成安装包过程进入startMenu所在目录执行命令 binarycreator.exe -c config/config.xml -p packages install.exe -v补充:Qt Installer Framework:在桌面上创建快捷方式installscript.qs 文件中写入如下代码Component.p原创 2021-04-01 13:54:13 · 374 阅读 · 0 评论 -
QComboBox样式表qss设置
//未下拉时,QComboBox 样式 背景黑色QComboBox {border:none;background:#000000;color:#ffffff;padding-left:30px;font-size:16px “SimHei”;}//下拉后的整个下拉窗体样式 背景红色QComboBox QAbstractItemView {background:#ff0000;color:#ffffff;padding-left:30px;}//下拉箭头区域样式QComboBox::drop-d原创 2021-02-02 10:23:55 · 1996 阅读 · 0 评论 -
QSettings 读取带英文逗号的文本为空
最近在使用QSettings 读取.ini文件,其中有一项带英文逗号Radar_Model=MR72,MR76,SR73,SR60,输出一直为空QSettings qSettings("config.ini",QSettings::IniFormat);qSettings.setIniCodec("utf-8");QString strRadarModel=settings.value("Radar_Model").toString();正确做法是转成 QStringListQSettings原创 2021-01-19 17:09:15 · 782 阅读 · 0 评论 -
QString-char 之间的转化
QString-char 之间的转化1、QString 转换成 char *方法:QString Qstr = “Test”;QByteArray ba = Qstr.toLatin1();或者 QByteArray ba = Qstr.toAscii();const char *c_str = ba.data(); //为何要使用const 应该跟使用Qt版本有关明智做法:char *chStr = NULL;QByteArray ba = str.toLatin1();chStr转载 2021-01-04 17:04:11 · 8932 阅读 · 1 评论