QT
QT开发的知识
17岁boy想当攻城狮
在时间的大钟上,只有两个字「现在」
展开
-
QT_TableWidget插入checkbox
QTableWidgetItem *itemcheck = new QTableWidgetItem(); //设置此checkbox属性,Unchecked是不选中,如果要选中改成Qt::checked check->setCheckState(Qt::Unchecked);//直接加到table里就可以了_var_handl->setItem(_par_index, 0, check);...原创 2021-01-19 14:08:12 · 2136 阅读 · 0 评论 -
The “QtRunWork“ task returned false but did not log an error
最近在业务开发时需要在QThread中更新UI,如果通过UI句柄直接更新会使程序报错,因为在线程中更新UI不会被原线程的EXEC事件捕获,会导致消息事件堵塞产生ERROR,所以使用了信号与槽的机制,然后我在QThread中声明了一个signals信号,编译时就报了这个错:The "QtRunWork" task returned false but did not log an error没有给出任何详细警告,后来我查看了QT的相关说明解决了这个问题,解决方案:在你使用信号与槽的类中加上一行宏定义原创 2022-02-11 16:34:34 · 1203 阅读 · 0 评论 -
记录QT在实时显示摄像头数据时候切换TAB页出现异常
最近在做一个项目,用一个TAB做页控件,里面放了不同的widget,其中Awidget是实时输出摄像头数据,是通过opencv转qimage,一开始正常,当我快速在A与B之间切换时就出现了如下错误:Windows上的开发经验告诉我,这个时候当TAB页切换到B时,A页就进入不可用状态,也就是说这个时候不会绘图,然后当我们在切换回来的时候(A里有个线程在实时刷新图像),线程往QIMAGE里写数据,QT本身也去更新数据导致崩了。最后解决方案:在切换函数调用完成之后,在去设置条件值,告诉线程可以绘图了.原创 2021-01-19 14:04:49 · 303 阅读 · 0 评论 -
QT_QTableWidget增删改读
读取//获取数据QString _var_text = ui->TableWidget->item(0,0)->text();item有两个参数,第一个参数是行,第二个是列。如果想转换格式可以使用QString转换成c++基本类型//int_var_text.toInt();//double_var_text.toDouble();//string_var_text.toStdString();修改ui->TableWidget-&g.原创 2020-12-17 10:53:13 · 2022 阅读 · 0 评论 -
QT_继承ApplicationWindow控件的C++与QML交互
如果你的qml窗口类型是ApplicationWindow此窗口不继承“widgets”如果我们使用这个方法: engine.load(QUrl("qrc:/qml/automotive.qml")); QObject *pRoot = engine.rootObjects().first(); QObject *pLabel= pRoot->findChild<QObject *>("pLabel"); if(pLabel){ QLabel *Label1=原创 2020-10-09 14:02:26 · 288 阅读 · 0 评论 -
QT显示图片和中途修改图片
使用qlabelQImage *image= new QImage("./pic1.jpg"); label->setPixmap(QPixmap::fromImage(image));image->load("./pic2.jpg"); label->setPixmap(QPixmap("./pic.jpg")); 更换图片qimage实现QImage *image= new QImage("./pic.jpg"); label->setPi原创 2020-12-17 11:08:26 · 1440 阅读 · 0 评论 -
QT_QTableWidget获取多少行与多少列
行数rowCount列数columnCount原创 2020-12-17 11:19:02 · 4010 阅读 · 0 评论 -
QT_在循环中刷新界面
遇到一些阻塞函数,阻塞主线程的函数时可以使用:qApp->processEvents();原创 2021-01-09 15:58:54 · 1228 阅读 · 0 评论 -
QT开发_弹出窗口禁用父窗口并移动到父窗口中心位置
在开发中我们可能会增加一些动画效果,如弹出子窗口时父窗口不可操作我们可以在弹出子窗口的构造函数里添加如下代码:setWindowModality(Qt::ApplicationModal);这条代码的作用是除当前窗口以外的所有窗口禁止被操作如果想将子窗口设置到父窗口中心位置可以使用如下代码:QPoint globalPos = this->mapToGlobal(QPoint(0, 0));m_wait.show();m_wait.move(globalPos.x().原创 2021-10-25 14:56:48 · 1383 阅读 · 0 评论 -
spdlog: undefined reference to `fmt::SystemError::init(int, fmt::BasicCStringRef<char>, fmt::ArgList
当我想把spdlog加入到我的Linux QT项目工程中去,用于做Log服务,但是当我编译时出现了奇怪的问题:ld链接报了两个错:/usr/bin/ld: /home/zzh/WeyeDataHub/linux_build/RadarSimSystem/../../linux_output/release/x64/weye_log/libweye_log.so: undefined reference to `fmt::SystemError::init(int, fmt::BasicCStrin原创 2021-04-08 21:27:01 · 785 阅读 · 0 评论 -
qmake用法
当我们拿到一个项目时,或者这个项目是使用visual studio来管理的,但是这个项目里不涉及到依赖平台的写法,完全是POSIX跨平台的代码,由于代码文件较多在Linux上只有.sln文件而Linux又没有visual studio来管理它,这个时候我们可以使用qmake来一键为我们生成项目。在项目里使用qmake命令来生成pro对应的pro文件,qmake会自动梳理.h、.c、.cpp文件的关系,然后生成对应的Makefile文件.使用如下命令生成.pro文件qmake -project原创 2021-03-24 14:23:23 · 754 阅读 · 1 评论 -
QT指定编译器
QMAKE_CC = arm-linux-gnueabihf-gccQMAKE_CXX = arm-linux-gnueabihf-g++原创 2021-04-23 15:49:29 · 594 阅读 · 0 评论 -
QT pro文件 Win/Linux跨平台写法
当我们的程序具有夸平台特性,并且不同的平台调用不同的lib库或者头文件可以这样写windows写法//统一Windows平台的方法win32{ } //仅msvc编译器win32-msvc*{}Linux统一Linux或unix平台写法unix{}//仅g++编译器linux-g++*{ //这里的内容和方法一相同}...原创 2021-03-05 10:41:44 · 1240 阅读 · 1 评论 -
Linux_Qt:-1: error: cannot find xxx/lib: file format not recognized
给QT工程 pro文件添加zmq的项目lib时,编译出现::-1: error: cannot find /opt/toolschain/zeroMQ/zeromq_gcc/lib: file format not recognized原因是因为lib库目录下有很多链接库文件可以使用“ll”命令查看文件的指向类型从图中可以看出libzmq.so.5.0.0是libzmq.so和libzmq.so.5的软连接所以libzmq.so.5.0.0是非.so文件,所以qt在加载lib目原创 2020-09-18 16:03:50 · 3026 阅读 · 0 评论 -
qmake构建项目详细讲解
qmake是trolltech公司开发的跨平台Makefile生成工具,它被QT用来管理项目工程,无论你的项目是否使用QT编写都可以使用qmake来管理你的项目,因为这样你就不用去写复杂的makefile,虽然已经有cmake了但是qmake会比cmake更简单。虽然qmake不像cmake多元化,但是qmake至少能够让你快速将一个平台的项目工程迁移到另外一个平台。如你有一个项目使用visual studio开发的,想要迁移到Linux环境下,要知道linux环境除了QT以外的可视化开发IDE以外原创 2021-04-08 15:29:26 · 2354 阅读 · 1 评论