![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Qt
记绘衣
不过一场孽缘
展开
-
QT自定义日志模块
QT中有时会遇到记录日志需求,但是每次在需要记录的地方都写一个读文件写文件实属很麻烦,甚至有时一不小心就忘记了close文件(虽然不知道忘记关闭文件会有什么后果,但总感觉很不好)。自定义日志模块1 读写文件QFile的简单使用2 封装模块3 引用1 读写文件首先什么是读写文件,为什么要去读写文件。曾几何时,我调试代码的方式就是下断点和定点输出(我自己起的),下断点就不说了,大家都知道,那什么是定点输出呢:在自己想要的地方输出自己想要的参数。但是这两种方式对于大的项目就会很不实用,而且也不规范,记原创 2022-04-11 13:33:59 · 857 阅读 · 0 评论 -
QT中手动异常管理
QT中有自己的异常类:QException这个类中会记录一些异常信息(废话),但这些异常信息有时候不是我们所需要的,我们可能更加需要一些自定义的信息,例如记录一些状态码的错误日志等等。下面举个栗子:...原创 2022-03-25 10:29:57 · 1949 阅读 · 0 评论 -
QT中Json与类之间的相互转换
使用到的QT库:#include <QJsonObject>#include <QJsonArray>#include <QString>#include <QJsonDocument>#include <QObject>假设json的数据为:{“name”:“xxx”,“age”:3,“langurage”:{“国籍”:[“中”,“俄”,“土”]}}定义类时,name,age,langurage为类的成员,lan原创 2022-02-24 09:06:45 · 2422 阅读 · 0 评论 -
【QT中使用post】
最近要使用post进行通信,就研究一下QT中Post的简单实用,基本上是最基础的了,也仅限于客户端。.h文件: QNetworkAccessManager *accessManager=nullptr;//通信管理 QNetworkReply* reply;//发请求 QNetworkRequest request;//接受结果 QByteArray postData;//传数据 private slots: void on_pushButton_click原创 2022-02-24 08:53:42 · 2910 阅读 · 0 评论 -
QT程序突然出现未标识的变量
QT 5.9.9本来程序运行的很正常,我新加了一个类后保存了一下后就突然显示我有一个变量未标识,当时感觉很懵逼,那个变量就在.h文件中定义的,用ctrl+鼠标左键也能找到它,而且我也没对它进行修改,怎么就突然变成未标识的了?而且在那个错误的上方有一些警告:Cxxx:该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为unicode格式防止数据丢失。为了解决这个问题我进行了几次尝试:一、将QT中的文本编辑编码修改:具体操作为:QT->工具->选项->文本编辑器->原创 2022-02-23 15:03:08 · 447 阅读 · 0 评论 -
QT为页面标签增加提示
一、正常的情况:一般来说,我要为一个标签增加提示(鼠标悬停时显示提示)没啥好说的,基本都用自带的setToolTip函数,例如:this->ui->xxx.setToolTip("这是一个小小提示");这些相信对大家来说都没啥问题二、不正常情况我这里要说的是一些特殊情况,例如:我的页面上有许多标签,有自制的Mylabel,有QT里的QLabel,我要在QLabel上显示提示,而在MyLabel类上不显示(想要显示的话当然也可以),另外我的页面有许多QLabel,像上面那样一个个来展示原创 2022-02-10 13:55:46 · 872 阅读 · 0 评论 -
Linux下QT 引入文件路径介绍(以Basler相机驱动为例)
如果在QT程序中引入第三方的工具,有时就需要引入他们的库文件,那么该怎么做呢?这里我以Basler相机驱动为例:首先我们需要下载Basler相机的驱动,下载链接:https://www.baslerweb.com/cn/sales-support/downloads/software-downloads/在这里找到自己所需要的版本,我下的是pylon6.3接下来就是安装了,我装到了(嘻嘻装到了)/opt/pylon6.3下然后就是配置环境变量了(我就是少了这一步,导致引入不成功,Windows下原创 2022-01-20 14:22:07 · 1294 阅读 · 0 评论 -
QT鼠标移动到部件上显示提示信息
有时我们会又将鼠标移动到某些部件上显示提示信息的需求:如果是自定义部件可以添加一个鼠标移动事件:在.h中加入事件的定义void mouseMoveEvent(QMouseEvent* e) override;//hint text在.cpp中进行实现void xxx::mouseMoveEvent(QMouseEvent* e){ this->setMouseTracking(true);//to hint text this->setToolTip(this-&g原创 2022-01-17 11:27:10 · 5555 阅读 · 0 评论 -
关于QT语言家的心得(补)
关于使用语言家翻译完后,界面上字体大小显示不完全的补充:先上代码:if (cName == "QPushButton")//获取当前遍历到的组件所属的类型{ QPushButton *pb = qobject_cast<QPushButton *>(o); if (pb) { QFont font(pb->font()); while(1) { QFontMetrics原创 2022-01-14 10:23:06 · 162 阅读 · 0 评论 -
关于QT语言家的心得(下)
上次说到翻译完后程序的文字大小并没有完全适应,今天找了两种临时解决方式:首先,我们需要遍历界面的小组件:void xxx::changeFontSize(QObject *obj){ QObjectList list = obj->children(); IBaseWidget *baseWidget; foreach(QObject *o,list) { if(o->children().count()>0)//递归查找子对象原创 2022-01-13 17:28:36 · 102 阅读 · 0 评论 -
关于QT语言家的心得(上)
首先,我们知道QT语言家可以对程序界面所有可见的字符串进行提取,翻译。提取和翻译的方式网上资料很多,我这里就不赘述了,我就交代几点自己经历过的几个要点。一、linguist没法自动翻译 我查了很多资料,都没找到关于如何让linguist自动翻译的方法,自己也试了很多遍,也都不能让它帮我自动翻译,最后我是照着翻译软件把字符串一个个手动翻译的。 不能进行自动翻译的原因要么是它的翻译接口被禁用了,或者是网络不可达(比如它的翻译API在国外我们可能就需要进行翻墙)。如果一定需要进行自动翻译,可以查查怎么修原创 2022-01-12 15:21:51 · 311 阅读 · 1 评论 -
QT鼠标事件处理
首先介绍一下常用的鼠标事件:void mousePressEvent(QMouseEvent *e);// 鼠标点击事件void mouseMoveEvent(QMouseEvent *e);// 鼠标移动事件void mouseReleaseEvent(QMouseEvent *event);//鼠标释放事件在自己定义的类中重写这三个函数,就可以在鼠标执行对应动作时触发。但是,如果自己的类有:void MouseEvent(QMouseEvent* e);函数时,会优先执行这个事件函数,原创 2021-12-28 13:27:53 · 607 阅读 · 0 评论 -
linux QT获取正在运行程序的cpu和内存占用率
linux下QT获取正在运行程序的cpu和内存占用率使用到的类:QProcess头文件:#include <QProcess>原理:通过QProcess类来启动一个命令行窗口,然后执行查询语句,再获取结果能得到想要的信息,因此,只要改变语句就能获取很多信息,不局限于cpu与内存实例:a.h:#include <QProcess>#include <QString> calss a : public QObject//要通道信号槽机制,所以需要继承QOb原创 2021-12-23 11:00:52 · 4901 阅读 · 0 评论 -
Qt绘制小组件上的图像-grab函数
QPixmap QWidget::grab(const QRect &rectangle = QRect( QPoint( 0, 0 ), QSize( -1, -1 ) ))函数原型:????功能:按照自己给定的矩形大小,来截取widget上的内容,如果这个widget有子部件,会把这个子部件放在合适的位置(具体怎么个合适法,我也不知道,应该是按比例来的)。如果指定的矩形无效,则直接绘制整个widget部件。grab函数是在Qt5.0中引入的。...原创 2021-11-18 16:14:56 · 2057 阅读 · 0 评论 -
QT报错expected ‘:‘ before ‘QMessageLogger‘
QT报错expected ‘:’ before 'QMessageLogger’是什么原因?玄学问题:2021年11-04,编译反复报错expected ‘:’ before ‘QMessageLogger’:找不到原因,然后等了一会儿,突然出现这个错误:加上分号“:”,然后就编译通过了,就很有趣。。。...原创 2021-11-04 15:08:07 · 819 阅读 · 1 评论 -
Qt运行报错:lt tolerant heap shim applied to current process. This is usually due to previous crashes. **
查阅资料大致是内存泄露问题:修改方式:1、查找程序中存在内存泄露地地方,然后修改它。2、开注册表,设置HKLM\Software\Microsoft\FTH\Enabled 为0(打开注册表:regedit)打开CMD,运行Rundll32.exe fthsvc.dll,FthSysprepSpecialize或者在注册表中删除Software\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\Layers\your_application.e原创 2021-10-28 09:06:27 · 270 阅读 · 0 评论 -
Qt编译运行提示No rule to make target ‘xxx.h‘ needed by ‘xxx.o‘.Stop
Qt编译运行提示No rule to make target ‘xxx.h’ needed by ‘xxx.o’.Stop今天使用Qt运行程序时突然报错No rule to make target ‘xxx.h’ needed by ‘xxx.o’.Stop。这让我感觉很神奇,因为之前跑这个Qt项目是没啥问题的,突然就报了这个错误,百度了很多东西都没找到原因。后面把文件移了一下位置(之前放在桌面上),就好了!!!???我心中直接疑惑了,过了好久才反应过来,桌面的路径是含有中文的。这件事让我学到了原创 2021-10-26 12:49:47 · 2026 阅读 · 0 评论 -
Ubuntu下Qt配置随笔_1
Ubuntu1604_64下Qt配置随笔打开配置的方式:先打开Qt(这是废话),然后点击TOOL,再选择Options 里面可以找到Kits,点开就是kitscompiler: C: GCC(C,x86 64bit in /usr/bin) C++: GCC(C++, x86 64bit in /usr/bin)CMake Tool: System CMake at /usr/local/bin/cmakeCompilersAuto-detected C++ GCC(C++原创 2021-10-22 08:39:35 · 191 阅读 · 0 评论 -
Ubuntu中QT编程时内存不够时可以使用交换分区
QT编程时内存不够时可以使用交换分区首先需要管理员权限:可以使用sudo -i转到管理员(或者直接su - root指令,这个需要知道管理员密码)然后在根目录下创建一个文件夹swap:mkdir /swap再使用cd命令切换到新建的swap文件夹下:cd /swap用dd命令创建一片空间:dd if=dev/zero of=fff bs=1M count=1024of后面的文件名随便取,内存空间的大小为bs*count 这里就是1G使用free -m 命令可以查看还可以申请作为交换分原创 2021-09-03 15:26:05 · 328 阅读 · 0 评论