
QT相关
#Page#
这个作者很懒,什么都没留下…
展开
-
QString fprintf乱码问题
【代码】QString fprintf乱码问题。原创 2023-02-04 08:28:37 · 630 阅读 · 0 评论 -
QHash QList容器类修改元素的值
不过要判断这个元素是否有效,特别是指针元素的情况下!list[0].x = 2,或者。原创 2022-10-17 08:52:57 · 1509 阅读 · 0 评论 -
Qt的QSerialPort 使用注意事项
基本用法就不说了,说一下注意点:1、不可以跨线程使用,比如GUI构造,传指针给子线程,NO!2、同步和异步方法不可以混用,同步包括waitForReadyRead, waitForByteWritten这2个函数;异步方法包括dataReady, byteWritten等信号继续:Qt的QSerialPort 使用注意事项-3YL的博客 (labisart.com)...原创 2022-06-09 17:29:11 · 928 阅读 · 1 评论 -
c++11 range-loop might detach Qt container (QStringList)避免方法
字面描述是循环会分离此列表。避免出现此警告用如下方法原创 2022-06-07 15:11:40 · 3746 阅读 · 0 评论 -
C++以类作为指针数组及双重指针如何初始化?
大家都讲int类型的双重指针,我们讲讲类的双重指针,这个在实际用得上原创 2022-06-02 12:04:16 · 338 阅读 · 0 评论 -
qInstallMessageHandler在debug模式下无效
qInstallMessageHandler大家都知道怎么用,但是有没遇到debug调试模式下不能输出呢?windows平台啊,linux好像没问题。解决方案就是:qInstallMessageHandler 在debug模式下无效-3YL的博客原创 2022-05-20 15:11:03 · 489 阅读 · 0 评论 -
在Windows上编译QtCreator 6
看了qtcreator一直在更新,但是官方又没有我这版本的qtcreator,于是想自己编译一下,5.14.1+vs2017。1、从清华镜像下载qtcreator6源码,解压2、下载cclang二进制文件:https://mirrors.tuna.tsinghua.edu.cn/qt/development_releases/prebuilt/libclang/libc/libclang-release_80-based-windows-vs2017_64.7z3、下载ninja,直接放到原创 2022-04-18 13:56:52 · 669 阅读 · 0 评论 -
QMainWindow作为QWidget子窗口,实现自定义无边框标题栏
需求如下:QMainWindow无边框,但是又要菜单栏、多窗口、dockwidget。这时候无边框就很蛋疼,不好拉伸,没地方拖动。那么变个思路,把QMainwindow嵌入到qwidget中,然后在qwidget中layout实现嵌套,这时候就灵活多了,截图:代码:Widget.cpp#include "widget.h"#include "ui_widget.h"#include "mainwindow.h"#include <QBoxLayout>#原创 2022-03-31 10:20:14 · 2088 阅读 · 2 评论 -
QSqlQuery 如何与数据库 QSqlDatabase 关联 保持连接
结论:只有使用Qt内置的默认连接名的时候,QSqlQuery才可以用空的构造函数,即如下是一一对应的:mdb = QSqlDatabase::addDatabase("QSQLITE");// 等价于 q(mdb)QSqlQuery q;q.exec("select *...");又或者指定了连接名,必须要按如下配对:mdb = QSqlDatabase::addDatabase("QSQLITE","MyConnectName");// 不能用空构造函数,提示 d原创 2022-03-23 17:11:24 · 2080 阅读 · 0 评论 -
qt 无边框窗口拉伸,可能是全网最精简的代码
王婆卖瓜自卖自夸!废话少说,上代码,基于QMainWindow:H:#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QRubberBand>QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACE#define DEFAULT_CURSOR Qt::ArrowCursorclass原创 2022-02-22 10:34:17 · 1105 阅读 · 0 评论 -
qt使用opengl绘制YUV数据图像(完整代码)
这个兄弟实现了这个:qt使用opengl绘制YUV数据图像_求知者先的博客-优快云博客不过烦就烦在代码不全,好人做到底:1、找一个qcif(176x144)分辨率的yuv文件到c盘2、copy如下代码运行即可MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); { auto原创 2022-02-11 12:00:37 · 3265 阅读 · 8 评论 -
Qt将鼠标移动范围限定在某个区域内QCursor跨平台代码
不用ClipCursor(),直接上跨平台代码:void MyMainWindow::leaveEvent(QEvent * event){ // Get the window geometry & cursor position const QRect & rect = geometry(); QPoint position = QCursor::pos(); // Check the bounds qint32 x = qBound(rect.left(), posi原创 2022-02-08 10:11:38 · 1841 阅读 · 0 评论 -
QDockWidget 用法示例代码QMainwindow
代码参考了sqlitestudio,基本框架有了,大家拿去happy:QMainWindow::setCorner()的作用要使left的底部跑到最下边,设置一下corner就行:// 意思是,Bottomleft这个角落,属于左边dock部分,左边dock底部会伸到最下面setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); // 参考上面意思setCorner(Qt::BottomRightCorner, Qt::Rig原创 2022-01-13 08:41:37 · 704 阅读 · 1 评论 -
qopenglwidget实现qimage图片显示,硬件加速对比
代码来自csdn一个兄弟,具体忘了哪里了。后来经过我改良成了现在这样子,主要有3个功能:1、支持paintGl()调用显示2、支持qopenglwidget->panitEvent()调用显示3、支持普通qwidget->paintEvent()调用显示打开QtOpenGLWidget.pro,配置变量如下:继续继续:qopenglwidget实现qimage图片显示,硬件加速对比-3YL的博客...原创 2022-01-11 11:07:21 · 3408 阅读 · 3 评论 -
C++ 单例加入初始化参数
上一篇文章见:C++单例模式及线程安全(含2004年和2011年版本)-3YL的博客留言有个扛精,号称写了几十万行代码,说单例就要把初始化参数写死到类里面。那么我们来举一个例子。比如我们有一个INI读写类,因为读写同一个文件,那做成单例肯定有好处,不会多个实例访问。代码如下:class Config : public QObject{public: // 单实例 static Config& i(); void save(const QString &原创 2021-12-18 11:29:07 · 2412 阅读 · 3 评论 -
qt5 多工程多语言国家化演示实例
一般我们都是app+dll方式,并且app和dll都可能引用同样的字符串。这个工程演示了如何架构多语言国际化的示例。目前唯一不好的是同样的字符串需要翻译两次!shit!架构:/res en-US-app.qm en-US-dll.qm/app app.pro/dll dll.prostrings.h其中strings.h包含需要引用的文字:#include <QObject>class Strings:public QObject原创 2021-11-30 14:53:58 · 264 阅读 · 0 评论 -
qtcreator 使用qdebug输出文件路径并快速打开到行数
qtcreator 使用qdebug输出文件路径并快速打开到行数用过AndroidStudio的同学都知道,在log控制台可以直接点击文件名,然后文件就打开并定位到某行,这样调试非常方便。那么qtcreator是不是也可以这样呢?答案是肯定的,重磅代码来了:qtcreator 使用qdebug输出文件路径并快速打开到行数-3YL的博客...原创 2021-11-17 10:04:31 · 507 阅读 · 0 评论 -
qtcreator qmake subdirs多工程编译依赖的坑
注意,以下写法是错的:TEMPLATE=subdirsSUBDIRS=\src/app\#relativepathssrc/lib\src/lib2app.depends=liblib2虽然qmake可以解析出子工程叫lib 和lib2,但是就是无法depends!要用工程名+子目录 .subdir 架构才能识别:qmake拷贝文件,以及QMAKE_COPY等命令解释,q...原创 2021-11-10 16:13:58 · 1072 阅读 · 0 评论 -
dll 导出类产生的dll 地狱问题
不说导出那几种方式了,一般我们自己的工程只要一种就行: extern"C"_APIIExport*CreateExportObj(); 其中加不加 __stdcall __cdecl 都行。如果要给别人用就一般用 __stdcall。命名更改规律一图搞定:再来说说dll导出类。一般只要类前面加上 _API就行了,但是,这里容易出问题,出来一个叫dll hell,就是dll地狱问题。这个问题的现象就是,你改动了这个dll,如果app没有重新编译容易崩溃!...原创 2021-10-30 09:50:30 · 477 阅读 · 0 评论 -
QTextEdit作为显示printf带颜色\033的字符串终端
好像没人做这个,我搞了个前景色的分享下。1、在append()字符串时设置颜色2、在append()字符串前判断颜色,并把\033[31m此类字符删除代码如下:QTextEdit作为显示printf带颜色\033的字符串终端-3YL的博客...原创 2021-10-15 10:46:21 · 471 阅读 · 0 评论 -
博客转到 labisart.com/blog,请大家捧场
后续博文将全部转到labisart.com,欢迎大家捧场。原创 2016-12-01 15:08:40 · 1776 阅读 · 0 评论 -
qt 提高代码质量及C++11特性学习
先说代码质量,仅供参考,不过我觉得有一定道理:① Use multi-arg instead【不要使用一连串的 arg().arg().arg() 了】QString("%1 %2").arg(a).arg(b); // BadQString("%1 %2").arg(a, b); // one less temporary heap allocation这个不一定好使,以前用过报错。② parameter 'list' is passed by value and only copi原创 2021-09-23 11:41:14 · 471 阅读 · 0 评论 -
qt5.15 插件之间的通信机制,与主程序通信
首先说下qt的插件,扫一下盲,很多新人会有点懵逼,它包含几大类:1、qt内核插件:用来完善qt本身的功能,比如你搞个数据库插件,让别人可以直接用来读写数据库,这个也叫high-level api2、qtcreator插件:用来扩展qtcreator的功能,比如代码缩进整理3、qtdesigner插件:用来当作普通控件使用,比如你制定一个绿色button,写完插件后拖到qtdesigner的plugin目录,然后就可以愉快的用鼠标拖拉这个绿色button到你的widget了,可以参考:http:/原创 2021-09-11 09:27:17 · 1534 阅读 · 0 评论 -
qt 子线程(多线程)更新gui的方法
直接进入主题,据我所知,方法有3种:1、自定义signal、slot,这个就不多说了,标准方法2、使用QmetaMethod::invoke,这是可以直接在子线程调用的,看起来比较另类3、从5.4开始,有了另一种新方法:https://labisart.com/blog/index.php/Home/Index/article/aid/225...原创 2021-08-27 16:19:20 · 1588 阅读 · 0 评论 -
QT+OPENCV或AVILIB实现录屏功能
先说说opencv,直接转载:https://www.cnblogs.com/WushiShengFei/p/11202250.html怎么得到qimage就不说了,他的核心函数为:bool g_needstop =false;void Record(){ RECT rect; //获取窗体位置大小 GetWindowRect(hd,&rect); cv::Size frameSize; frameSize.width=rect.righ原创 2021-08-14 12:04:49 · 734 阅读 · 0 评论 -
对qtablewidget qtableview进行完整截屏
一般 tablewidget和tableview都有滚动条,如果完整的截屏是个麻烦事。首先想到的是滚动几次,然后每次截屏,最后把几个图片拼一起。学过halcon和opencv的童靴,应该很简单,洒洒水了。然而还有另一种方法,是我去qt论坛询问得到的,分享给大家:https://labisart.com/blog/index.php/Home/Index/article/aid/217...原创 2021-07-09 08:41:07 · 375 阅读 · 0 评论 -
qmake nmake pro qt宏定义字符串与数字之间的转换
由于我的是多工程,所以自己做了脚本来编译,而且是bat调用qmake->nmake来编译。最终就是makefile规则。之前bat样例看这里:http://labisart.com/blog/index.php/Home/Index/article/search_word/bat/aid/197那么我给bat传参数时,最终是传到qmake和nmake,对qmake来讲,可以定义一个宏,然后在源代码里面进行访问,这就带来一个问题:如何宏定义字符串和数字。首先说说规则,pro里原创 2021-06-29 09:17:54 · 589 阅读 · 0 评论 -
QtConcurrent多线程的妙用
一般的qthread movetothread我们就不说了,大家都是牛人,就分享下这个 QtConcurrent 的一些比较少用到,但是看完又觉得非常妙的例子。1、在子线程里面直接更新ui QtConcurrent::run([this]{ //Thiscoderunsinaseparatethread for(inti=0;i<files.size();++i){ //Thisissafeforc...原创 2021-06-16 09:19:27 · 451 阅读 · 0 评论 -
ASSERT failure in QMutexLocker: QMutex pointer is misaligned
这个问题有很多种原因的,要具体wenASSERT failure in QMutexLocker: "QMutex pointer is misaligned"原创 2021-05-31 15:13:26 · 1882 阅读 · 0 评论 -
qt QLabel实现图片轮播效果
装逼版本:https://www.jianshu.com/p/3ba5b6fe7980https://blog.youkuaiyun.com/ly305750665/article/details/82496046工程版本:https://download.youkuaiyun.com/download/lanmanck/15834367原创 2021-03-16 09:53:14 · 1079 阅读 · 0 评论 -
qdialog qwidget qt 窗口消失动画,QPropertyAnimation 丢帧 丢数据
本来想用QPropertyAnimation做一个显示或者消失的动画的,结果莫名其妙会丢帧,有时候30帧,有时候10帧,结果只好自己做一个定时器来模拟动画。qdialog做显示动画在showevent搞就可以了,但是消失动画就不能用closeevent,经过一番摸索,终于ok了。继续:http://labisart.com/blog/index.php/Home/Index/article/aid/205...原创 2021-03-08 14:57:23 · 465 阅读 · 0 评论 -
如何优雅的设置qtablewidget qtableview某列不可编辑、只读?
csdn一大片都是ui->tableWidget->item(num,0)->setFlags(Qt::NoItemFlags);这明显是某行某列,要一增列还要搞个for循环,一个字,挫!这是解决方案,使用delegate委托,适用于tableview:http://labisart.com/blog/index.php/Home/Index/article/aid/204...原创 2021-02-24 20:10:41 · 7828 阅读 · 1 评论 -
qserialport qt 串口在子线程发送没有响应,失败
如果串口在gui线程,收发一点问题都没有。如果放到子线程,就会发现发送不出去,代码: dbuffer[idx++] = 0x40; // 起始标识符 dbuffer[idx++] = 5; // 长度 dbuffer[idx++] = 1; // 设备号 dbuffer[idx++] = 0; // 设备id dbuffer[idx++] = 0x1A; // 亮度设置原创 2021-02-24 11:11:50 · 1937 阅读 · 1 评论 -
qt5 仪表控件 码盘 电压表 油表 开源不装逼
首先声明,这是转载的,不过作者做的很漂亮,使得我无法拒绝给他转载。效果:原文:https://www.cnblogs.com/lifexy/p/9245918.html原文比较啰嗦,我就简单摘录:代码介绍1.代码里通过painter类来绘图,其中paintEvent()函数如下所示void Dial::paintEvent(QPaintEvent *){ QPainter painter(this); painter.setPen(Qt::NoPen); .原创 2021-02-18 14:54:24 · 2356 阅读 · 1 评论 -
qcustomplot实时滚动显示,内存释放删除数据
前面说了一下如何实时显示数据:http://labisart.com/blog/index.php/Home/Index/article/aid/200但是呢,内存会一直增大,像我们做工控机几个月不关机的肯定不行。所以必须要把之前的干掉,经过测试,使用了setdata方法,心得如下:http://labisart.com/blog/index.php/Home/Index/article/aid/201...原创 2021-02-13 23:28:06 · 3805 阅读 · 4 评论 -
qcustomplot 用时间作为x坐标轴,总是为0或者8点
大年三十了,祝大家新年快乐,万事如意!这个鸟东西,刚接触还不是那么容易显示时间,csdn上一大堆基本都是错误的,我这一点心得分享下。1、首先有2种类可以设置时间标签: QSharedPointer<QCPAxisTickerTime>timeTicker(newQCPAxisTickerTime);timeTicker->setTimeFormat("%h:%m:%s"); ui->widCapGraphics->xAxis->...原创 2021-02-11 11:45:48 · 1193 阅读 · 0 评论 -
windows使用命令行编译qt5【完整版,即开即用版】
网络上的东西真难找到全的,断续摸索了半天,终于实现了。为什么要命令行呢,主要是子工程有10几个,然后subdirs不能好好的管理输出、拷贝dll/h问题,所以最终还是采用命令行方式来,事实证明这个最省事。我这里直接发解决方案,共2个bat文件。1、在 pro 目录,使用如下bat初始化环境,包括qt和vc的@echo offecho 设置qt环境set PATH=D:\Qt\Qt5.14.1\5.14.1\msvc2017\bin;D:\Qt\Qt5.14.1\Tools\QtCrea原创 2021-02-02 15:45:02 · 723 阅读 · 0 评论 -
仿安卓苹果,使用QRadioButton实现SwitchButton效果
一开始我用的自画方式,后来发现用自带的控件+qss方便了很多,不过就是动画挫了一点,上图:上源码:http://labisart.com/blog/index.php/Home/Index/article/aid/196原创 2021-01-23 08:40:54 · 305 阅读 · 0 评论 -
qt5 movetothread 正确的用法
随便你搜索,99%文章都是qthread.start()完事,传参数怎么办?重复运行线程怎么办?所有坑都写在注释里面了,大家拿去happy吧。定义线程类,parent必须为空,特别是new的时候:#ifndef MYTHREAD_H#define MYTHREAD_H#include <QObject>#include <QThread>class MyThread : public QObject{ Q_OBJECTpublic: ex原创 2020-12-23 11:21:53 · 1728 阅读 · 5 评论 -
QSqlTableModel 全选数据库
一般这些掉毛只说 setFilter 怎么怎么滴,却没说怎么全选!全选就是 setFilter(""), 然后select();对,你没看错,给空字符串就是全选了!原创 2020-11-24 12:09:18 · 319 阅读 · 0 评论