
Qt
记录开发中遇到的问题,记录采坑过程,希望可以帮到更多的人!
斗转星移3
这个作者很懒,什么都没留下…
展开
-
linux Ubuntu下Visual Studio Code(vscode)开发Qt cmake实现自动提示(自动补全 )、语法高亮
在.vscode文件夹下新建c_cpp_properties.json,(可以用在工程目录下直接新建.vscode文件夹,注意vscode前带一个点,再新建一个c_cpp_properties.json文件)$ mkdir .vscode$ cd .vscode$ gedit c_cpp_properties.jsonc_cpp_properties.json 代码如下,使用gedit编辑完,Ctrl+s保存,当然你也可以使用vim编辑,不一定用gedit编辑,其中/opt/Qt5.9...原创 2021-06-25 16:06:02 · 3641 阅读 · 0 评论 -
qt cmake undefined reference to `vtable for MainWindow‘
在Ubuntu+catkin_make上qt开发时碰到以下错误:错误提示:undefined reference to `vtable for MainWindow'可能原因:(1)源文件的目录结构有问题,查看CmakeLists看看目录结构是不是对的!!!看其他博客说目录有问题,但我一直感觉自己的目录应该没有问题,还是太相信自己了。(2)当然了还有一种可能就是未添加Q_OBJECT参考自:Linux+CLion+树莓派远程编译时,Cmake编译出现undefin...原创 2021-06-15 09:01:26 · 1377 阅读 · 0 评论 -
error: conversion from ‘const char [2]’ to ‘QChar’ is ambiguous
if(inLineEditDisplay[i]=="+") error: conversion from ‘const char [2]’ to ‘QChar’ is ambiguous转载 2021-06-06 22:51:48 · 2448 阅读 · 0 评论 -
QMetaObject::connectSlotsByName: No matching signal for on_pushButton_clicked()
记录下今天出现的一个坑,但不一定对。QMetaObject::connectSlotsByName: No matching signal for on_pushButton_clicked()的解决软件启动就出现这样的问题,看网上说是因为我一开始建立了信号与槽的连接后改变了按钮的名字导致的,但是我连槽函数的名字也改变了,还是会出现这样的一个问题,后来查看代码的时候发现是我更改了目录,两个目录下有相同名字的ui_mainwindow.h,估计是一个文件中的按钮名称更改了,另一个文件按钮名称没有更改.原创 2021-05-31 13:28:45 · 1859 阅读 · 0 评论 -
cc1plus.exe:-1: error: fatal error: opening output file tmp/release/moc/moc_predefs.h: No such file
cc1plus.exe:-1: error: fatal error: opening output file tmp/release/moc/moc_predefs.h: No such file or directory遇到编译错误找不到问题,因为我代码没有更改,只是把编译目录下是输出文件全部删除了。后来发现这个问题只要更改下.pro文件,就是在任意一个地方加个空格,然后编译这个错误就没有了。我猜测是更新.pro文件后有做重新配置,然后有些东西会重新编译生成东西。...原创 2021-05-17 20:13:24 · 4860 阅读 · 6 评论 -
QCustomPlot 可以用来做图表
看到网上讲的QCustomPlot可以用来做图片记录一下。原创 2021-04-13 00:07:55 · 146 阅读 · 0 评论 -
qwidget 透明窗体(转载)
转载自其他博客:https://www.cnblogs.com/cute/archive/2011/09/19/2181447.html如需转载请联系原博主,未经测试,不清楚是否都对。qwidget 透明窗体1、设置窗体的背景色在构造函数里添加代码,需要添加头文件qpalette或qguiQPalette pal = palette();pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));setPalette转载 2021-04-09 18:26:57 · 724 阅读 · 0 评论 -
Qt lineEdit限制整数输入范围 设置只能输入整数
记录自己所学的知识,方便以后查阅,有时候查看下笔记,又是一种在学习的温故而知新的感觉。QIntValidator* IntValidator = new QIntValidator;IntValidator->setRange(0, 255);//可以改成(-255,255),这样就是负数ui->LineEdit->setValidator(IntValidator);...原创 2020-04-07 09:30:22 · 8577 阅读 · 2 评论 -
qt 侧边栏 Sidebar
方式一自定义https://bbs.youkuaiyun.com/topics/3701674991.整体框架可采用QMainWindow类2.左侧导航栏:根据需要可以用QListWidget或QTreeWidget;3.内容窗口可以使用QMdiArea类方式二QSidebar原创 2021-03-25 17:54:19 · 2866 阅读 · 0 评论 -
qt 几条翻译命令总结 多国语言 英文翻译 中英文切换 国际化
在工程的pro文件中,添加一行TRANSLATIONS = lang_chinese.tslupdatetest.pro //生成lang_chinese.ts文件lupdate test.pro -no-obsolete//增加-no-obsolete 代表如果有多余的翻译项(失效条目)那么多余的翻译项(失效条目)将自动删除lrel...原创 2020-03-02 16:29:55 · 740 阅读 · 0 评论 -
qt QStandardPaths 标准路径
头文件 qstandardpaths。henum StandardLocation { DesktopLocation, DocumentsLocation, FontsLocation, ApplicationsLocation, MusicLocation, MoviesLocation, PicturesLocation, TempLocation, .原创 2021-03-25 00:21:37 · 1384 阅读 · 0 评论 -
QThread的信号槽的跨线程使用 自动连接(Auto Connection) 直接连接(Direct Connection) 队列连接(Queued Connection)(转载)
超详尽-QThread的正确使用姿势-以及信号槽的跨线程使用贴上两篇博文一、http://www.cnblogs.com/findumars/p/5031239.html循序渐进介绍了,怎样正确的让槽函数工作在子线程中。同时介绍了信号槽的绑定与线程的关系QObject::connect涉及信号槽,我们就躲不过 connect 函数,只是这个函数大家太熟悉。我不好意思再用一堆废话来描述它,但不说又不行,那么折中一下,只看它的最后一个参数吧(为了简单起见,只看它最常用的3个值)clas转载 2021-03-03 13:51:46 · 1285 阅读 · 0 评论 -
qt deleteLater 线程退出 线程析构(转载)
本文转载自互联网,如果有侵权请及时联系删除根据博文一中提到在没有event loop的thread使用, 那么thread结束后销毁对象。因此我尝试继承自QObject的对象使用deleteLater先删除,然后调用thread中的quit();这样继承自QObject的对象就可以正常析构了。博文一:原文:https://zhuanlan.zhihu.com/p/150178215一、 ”deleteLater()“的使用下面是官方文档对 ”deleteLater()“的介绍S.转载 2021-01-26 17:42:58 · 8654 阅读 · 1 评论 -
Qt error: within this context
error: within this context遇到这个问题突然不知道怎么解决,还好编译器提示在哪个地方出错了,对程序的敏感性,很快的发现成员函数是private而不是public的。更改成public就可以了。另外也要吐槽下,印象中其他编译器是会提示成员变量为private的,但我用的这个版本这次居然没有提示,不清楚这次为什么没有提示。...原创 2021-01-18 16:30:04 · 6594 阅读 · 1 评论 -
qt QObject::connect: Cannot queue arguments of type ‘QAbstractSocket::SocketState‘
QObject::connect: Cannot queue arguments of type 'QAbstractSocket::SocketState'(Make sure 'QAbstractSocket::SocketState' is registered using qRegisterMetaType().)目前个人遇到的解决方法如下,不同的人遇到的问题不一定一样,解决方法也不一定一样。这里只提供我解决问题的一种方法供大家参考。解决方法是在删除(delete)socket时出问.原创 2021-01-05 19:35:35 · 1625 阅读 · 0 评论 -
Qt QObject::connect: Cannot queue arguments of type ‘uint16_t‘
QObject::connect: Cannot queue arguments of type 'uint16_t'(Make sure 'uint16_t' is registered using qRegisterMetaType().)网上很多说遇到这种情况是由于数据结构是自定义类型,但uint16_t这个一般编译器已经帮我们定义好了,而且在非跨线程情况下都是可以用的。但是我还是觉得可以尝试使用qint16来替代uint16_t试试,后来又在网站上看到别人的回答,更确定我的想法应该可以完原创 2020-12-18 10:01:14 · 1243 阅读 · 0 评论 -
Qt Make sure ‘uint16_t‘ is registered using qRegisterMetaType()
QObject::connect: Cannot queue arguments of type 'uint16_t'(Make sure 'uint16_t' is registered using qRegisterMetaType().)网上很多说遇到这种情况是由于数据结构是自定义类型,但uint16_t这个一般编译器已经帮我们定义好了,而且在非跨线程情况下都是可以用的。但是我还是觉得可以尝试使用qint16来替代uint16_t试试,后来又在网站上看到别人的回答,更确定我的想法应该可以完原创 2020-12-18 10:00:37 · 1203 阅读 · 0 评论 -
Qt c++ error: expected class-name before ‘{‘ token
error: expected class-name before '{' token{^可能的原因有以下几种可能:1.头文件的宏定义HEAD_H是一样的(此项摘抄自网络,未验证)#ifndef HEAD_H#define HEAD_H....#endif2.继承的基类的头文件没有包含进来(这个是我曾经犯的错误,比较容易查)比如以下如果缺头文件#include "cbase.h"就会报错#ifndef CDRIVED_H#define CDRIVED_H...原创 2020-12-17 00:37:35 · 8606 阅读 · 2 评论 -
QByteArray length() count() size()的区别
以前没注意length() count() size()这几个有什么区别,都是随意用,想到哪个就用哪个,但总是疑问到底他们有没有区别。今天就去探个究竟,于是查qt的帮助文档,终于找到答案,三个确实没有区别,都是和size一样的!以下均摘抄自qt帮助文档,希望可以给初学者提供帮助。int QByteArray::length() constSame as size().int QByteArray::count() constThis is an overloaded func..原创 2020-12-03 14:03:18 · 6091 阅读 · 0 评论 -
QLabel 添加下划线 删除线
方法1.通过setText添加ui->label->setText("<u>下划线</u>");方法2.通过属性添加原创 2019-12-24 11:11:37 · 7283 阅读 · 1 评论 -
qt cannot open output file release\xxxx.exe: Permission denied
这是因为之前的编译运行程序没有退出,导致下一次编译运行无法进行,一般都是出现在程序崩溃或者你没有释放部分资源。方法1:任务栏管理器中找到相应的exe文件然后结束任务,我这里用Google浏览器示例,同时按ctrl+shift+esc打开任务管理器,选择对应你自己的exe结束任务,就可以了方法二:网上大多数的教程都是用方法1在但是我出现的问题是解决不了的,因为任务栏管理器看不到,最开始是直接关机重启,但发现多次出现经常关机也不是方法,因此网上找教程,终于还是找到了,但教程不够细致,因此将教原创 2020-11-27 15:00:00 · 3837 阅读 · 1 评论 -
qt QString mid截取中英文长度问题
length()方法返回字符串长度的时候就会出现偏差,对于一般的西文字母是没有问题的,但是对于中文字符却有问题了,它把一个中文字符当作一个字节来处理了,所以像字符串“你好QT”的长度返回的是4,而不是6。因此我们如果要截取固定字符长度的中英文时可以使用以下方法。QString text = QString ("一二三四五六七八九十");text = QString::fromLocal8Bit(text.toLocal8Bit().mid(0,4));参考自:http://www.cppb.原创 2020-11-20 15:30:17 · 1417 阅读 · 0 评论 -
Qt 正则表达式如何匹配反斜杠“\“ qt 屏蔽反斜杠输入 Qt 限制输入特殊字符
看到一个优快云上的问题,顺便记录下来,原文链接Qt 正则表达式如何匹配反斜杠"\" qt 屏蔽反斜杠输入问:复制代码QStringstr2("\\");QRegExprx(str2);qDebug()<<"result"<<rx.exactMatch("\\");Qt正则表达式如何匹配斜线"\"?单独的一个斜线上面写的不对的、、、答:如果是匹配正则表达式里的转移符斜线,由于C串本身会进行转义,所以得用“\\”所以如果想在正则中匹配字面上的...原创 2020-11-17 10:28:08 · 2796 阅读 · 0 评论 -
qt 菜单/右键快捷菜单 选项不可操作/背景/分隔线颜色样式表
"QMenu::item:selected{background-color:#ccdae7;}"QMenu{ color:rgb(255,255,255); background-color:#0f2033; border:none;}QMenu::item{ color:rgb(255,255,255); background-color:rgb(76,131,215); width:60px...原创 2020-11-16 09:15:59 · 2421 阅读 · 1 评论 -
qt window服务 SC命令
描述: 在注册表和服务数据库中修改服务项。用法: sc <server> config [服务名称] <option1> <option2>...选项:注意: 选项名称包括等号。 等号和值之间需要一个空格。 要删除依赖关系,请使用单个“/”表示依赖关系值。type= <own|share|interact|kernel|filesys|rec|adapt|userown|usershare>...原创 2020-11-11 23:01:55 · 484 阅读 · 0 评论 -
QT Pro 关键字使用介绍(转载)
转载自:https://www.cnblogs.com/Braveliu/p/5107550.htmlhttps://blog.youkuaiyun.com/simonforfuture/article/details/78580510https://www.cnblogs.com/xiangtingshen/p/11002464.htmlhttps://blog.youkuaiyun.com/abeldeng/article/details/25029507DESTDIR:用于指明编译的目标文件的输.转载 2020-11-10 16:36:44 · 817 阅读 · 0 评论 -
Qt 6的技术概览
技术更新换代很快,Qt5.12, Qt5.13 ,Qt5.15都还没用,Qt6马上也出来了,还是得想办法跟上时代,不然将被淘汰。Qt 6的技术概览:https://www.qt.io/cn/blog/2019/08/26/technical-vision-qt-6原创 2020-11-10 14:07:34 · 378 阅读 · 0 评论 -
qt几种常见的打包安装程序工具
1、setup factorysetup factory是一个强大的安装程序制作工具。提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序。可建立快捷方式,也可直接在 Windows 系统的注册表加入内容,还能在 Win.ini 和 System.ini 内加入设定值,更可以建立反安装选项等等。它内附的向导可以一步步的带领您做出漂亮又专业的安装程序。感谢其他博客给出...原创 2020-04-13 10:43:13 · 4111 阅读 · 3 评论 -
windows服务查看 快速进入方式 qt QtService exe 启动服务、卸载服务的命令
按Windows键(像田字的按键)+R键,再运行services.msc原创 2020-11-09 22:36:40 · 1742 阅读 · 10 评论 -
qt 和visual studio 打包安装包程序依赖库
使用vs自带的本机工具命令提示dumpbin /dependents xx.exe其中dumpbin和 / 之间有一个空格,dependents和xx.exe也有一个空格qt导出dll库windeployqt.exe xx.exe原创 2020-04-06 18:31:22 · 747 阅读 · 0 评论 -
Qt QLabel 手动换行 和 设置多种字体颜色
QLabel *label = new QLabel(); label->setText(QObject::tr("<font color = #D0EBFF >%1</font>").arg("第1行颜色1:") \ +QObject::tr("<font color = #FFFFFF&g...原创 2019-05-24 18:58:41 · 4195 阅读 · 0 评论 -
qt 样式表注释
qt的样式表可以使用/**/进行注释比如:QWidget{/*background-color:rgba(62,67,74,1);*/}原创 2019-05-23 16:45:00 · 3862 阅读 · 0 评论 -
C++ 以及keil qt等常见软件注释 @brief @param @return
brief 英[briːf] 美[briːf] adj. 短时间的; 短暂的; 简洁的; 简单的; 过短的; 暴露身体的; n. 任务简介; 指示; (向辩护律师提供的) 案情摘要; 委托辩护; 辩护状; @brief @param @return @author @date @version是代码书写的一种规范@brief:简介,简单介绍函...原创 2020-04-23 17:05:31 · 54129 阅读 · 1 评论 -
qti 计算时间差(精确到秒)
int sec = QTime::fromString(ui->ageingStartTimeLineEdit->text(),QString("hh:mm:ss")).secsTo(QTime::currentTime());原创 2020-09-27 01:24:38 · 841 阅读 · 0 评论 -
qt 计算/获取天数(日期)差
qint64 QDateTime::daysTo(const QDateTime &other) constReturns the number of days from this datetime to the other datetime. The number of days is counted as the number of times midnight is reached between this datetime to the other datetime. This mean原创 2020-09-25 10:22:28 · 3148 阅读 · 0 评论 -
qt LineEdit常用的函数
自己走过不少弯路,这个当做是给后来者学习的一个示例吧,少走点弯路。 QLineEdit * lineEdit = new QLineEdit(this); lineEdit->setText("Hi,QLineEdit!");//设置文字 lineEdit->text();//获取输入框的文字 lineEdit->setEchoMode(QLineEdit::Password);//设置密码输入模式,显示是小圆点,看不到明文 lineEdi原创 2020-09-24 23:45:46 · 5290 阅读 · 0 评论 -
qt const char * 和QString互转
const char * ======> QStringconst char * c = "hello , world !";QString str1(c);QString str2 = QString(c);QString str3 = QString(QLatin1String(c));QString str4 = QString::fromLocal8Bit(c);QString=====> const char *//方法1QString str1= "..原创 2020-09-17 17:45:10 · 9903 阅读 · 0 评论 -
qt QString常用函数simplified replace remove split indexOf mid left right prepend repeated number arg
1、simplifiedsimplified()功能,这个函数把一个字符串首尾的空格全部清除,不管首尾是几个空格哦。字符串中间的空格(包括单个空格、多个空格、\t、\n)都统一转化成一个空格,这样就方便提取了,我们再使用split()函数就能很好拆分了。qt帮助文档介绍.QString QString::simplified() constReturns a string that has whitespace removed from the start and the end, and原创 2020-09-16 16:26:11 · 7294 阅读 · 0 评论 -
Qt windows下获取CPU、主板、硬盘、网卡等相关信息
首先磁盘ID和磁盘序列号是不一样的,磁盘的一些相关信息可通过以下方式获取查看步骤,右键我的电脑---->选择属性---->选择设备管理器---->展开磁盘驱动器 就可以看到磁盘一些相关信息(不是序列号)1、硬盘序列号硬盘序列号,英文名为Hard Disk Serial Number,即为sn码,是出厂时生产厂bai家为区别产品而设置的,如du同每个人的zhi身份证编号一样,具有唯一性,不能修改。是指定到该产品的具体编号,也就是说即使是同一型号、同一批次的产品,其序列号..原创 2020-09-16 14:04:28 · 3154 阅读 · 0 评论 -
qt /斜杠与\反斜杠路径的转换
版权声明:本文为其他博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请先询问原博主,并附上原文出处链接和本声明。本文链接:http://blog.youkuaiyun.com/future_ai/article/details/103275701文件路径差异:Windows下使用的是反斜杠"\"。Linux下使用的是正斜杠"/"方法一:/转\(斜杠转反斜杠) QString path = "C:/temp/test.txt"; path = QDir::t...转载 2020-09-16 11:51:48 · 1005 阅读 · 0 评论