Qt-常用汇总
文章平均质量分 76
qt常用方法
luckyone906
这个作者很懒,什么都没留下…
展开
-
qt中QString与char *类型相互转换
qt原创 2023-02-17 19:38:40 · 4586 阅读 · 0 评论 -
Qt中创建使用动态链接库详解及实例
qt原创 2023-02-17 19:35:58 · 4187 阅读 · 0 评论 -
C#调用mingw编译出来的动态链接库实例(建议使用MSVC编译的)
qt原创 2023-02-16 22:22:23 · 479 阅读 · 0 评论 -
Qt创建动态库给C#调用,通过回调完成交互
qt转载 2023-02-16 22:18:25 · 2294 阅读 · 0 评论 -
Qt中子线程调用定时器实例
c++原创 2022-12-16 18:07:37 · 1817 阅读 · 0 评论 -
QList类迭代器详解
c++原创 2022-11-25 13:33:03 · 2900 阅读 · 0 评论 -
Qt中的枚举类型的使用方法
qt原创 2022-11-21 19:56:39 · 4441 阅读 · 0 评论 -
Qt中创建、写入、删除(INI、XML文件)
c++原创 2022-11-21 19:45:18 · 1847 阅读 · 0 评论 -
QT中QString 转换为 char *的几种方法
c++原创 2022-11-19 21:37:06 · 9599 阅读 · 0 评论 -
QT中QMap使用实例详解
QT原创 2022-11-18 20:56:02 · 2133 阅读 · 0 评论 -
qt中使用全局变量和静态变量示例(静态变量在.h文件中声明后必须在cpp文件中定义否则编译报错)
c++原创 2022-10-03 10:23:54 · 1373 阅读 · 0 评论 -
Qt-笔记(以太网与Q_OBJECT相关)
概念笔记原创 2022-09-28 21:26:45 · 506 阅读 · 0 评论 -
QT::::点击退出按钮,退出当前窗口(lamda表达式写法),实现点击按钮打开和关闭窗口
/*************************点击退出按钮,退出当前窗口*********************************/ QObject::connect(ui.pushButton_5, &QPushButton::pressed, [this]() { QApplication *app; //app->exit(); //在这里两个函数一样的功能 app->quit(); });QT实现点击按钮打开和关闭窗口//主要代码,.原创 2022-05-27 22:03:59 · 4508 阅读 · 0 评论 -
QT中关于类静态成员的编码格式错误(静态成员初始化必须放在.cpp文件中)
qt中指针类型的单例 error: LNK1169: 找到一个或多个多重定义的符号错误原因:因为创建了.h文件和.cpp文件,但是静态成员却在.h文件中类的外面初始化了成员变量(只有仅存在.h文件声明定义时才能这么用),把初始化放在.cpp中就可以了。注意:c++中一个类中的静态成员必须在.h文件中的外面初始化如下两种形式:.h文件#ifndef AA#define AAclass A{public:int* statc value;}int* A::value=0;#endif.原创 2022-05-27 21:55:03 · 549 阅读 · 0 评论 -
QT中QLIST清空问题分析
1.代码分析 //向QList中添加4个项 QList<QWidget*> lstWidget; lstWidget.append(new QWidget); lstWidget.append(new QWidget); lstWidget.append(new QWidget); lstWidget.append(new QWidget); 情况1: 采用foreach遍历清空,removeOne元素 for.转载 2022-05-21 11:10:46 · 4518 阅读 · 0 评论 -
QString转换QByteArray时中文问题解决方案
平常转换没怎么注意,一般QString转换成QByteArray不会出现问题,今天涉及到QJsonDocument类,转换出现以下问题:1、用toLocal8Bit()QJsonDocument::fromJson(stringData.toLocal8Bit(), &jsonError); // 转化为 JSON 文档if (doucment.isNull() || (jsonError.error != QJsonParseError::NoError)) { q...转载 2022-05-21 11:08:00 · 3897 阅读 · 1 评论 -
qt中解决QString中文乱码问题方法
Qt中解决中文乱码的问题qt中一般在设计师界面中设置的中文标题啥的都能正常显示。但是在QString中,比如QPainter在绘制Text的时候,传入的 char* 如果含有中文,则一般都会显示乱码。这个时候需要设置两个地方:main.cpp 中设置QTextCodecQString中使用静态方法fromLocal8Bit(char* )对于第一个地方,可在main.cpp 中设置如下:#include "MainWindow.h"#include <QApplication>原创 2022-05-19 20:06:30 · 5311 阅读 · 0 评论 -
QCoreApplication类各函数功能说明(获取应用程序路径、获取上一级目录)
QT获取当前目录的上一级目录dir->cdUp()QDir *dir = new QDir(QDir::currentPath());//D:/Project/Core dir->cdUp(); dir->path()//D:/Project /*********************************1,构造函数,创建一个非gui事件循环QCoreApplication(int &, char **)2,析构函数~QCoreApplication()3,A.原创 2022-05-19 20:04:20 · 2389 阅读 · 0 评论 -
QT中操作Txt文件(Qt中QString与QByteArray互相转化方法)
Qt如何把QString写入txt文件中1 示范代码由于write不能把QString直接写入文件中,因此有两种方法来处理:1 使用QTextStream类(中英文都可以存)//读入文件 QFile file; file.setFileName("C:/Users/Admin/Desktop/data2/1.txt"); QByteArray data; if(file.open(QIODevice::ReadOnly)){ data = file....原创 2022-05-19 20:07:19 · 3990 阅读 · 0 评论 -
Qt中QJsonObject类
00. 目录01. QJsonObject类简介02. 公有类型03. 公有成员方法04. 公有成员方法解析05. 参考示例06. 附录01. QJsonObject类简介Header: #include <QJsonObject>qmake: QT += coreSince: Qt 5.0 QJsonObject类用于封装JSON对象。JSON对象是包含键值对的链表,其中键是唯一的字符串,其值由QJsonValue对象。 QJsonObject...原创 2022-05-19 19:57:22 · 8469 阅读 · 0 评论 -
QT中Json的使用方法(类和json字符串相互转换的方法)
在QT5.0版本以后支持对Json的使用,直接使用QT提供的json类进行数据的组织和解析。Json类 介绍 QJsonDoucument 它封装了一个完整的 JSON 文档,并且可以从 UTF-8 编码的基于文本的表示以及 Qt 自己的二进制格式读取和写入该文档。 QJsonArray JSON 数组是一个值列表。可以通过从数组中插入和删除 QJsonValue 来操作该列表。 QJsonObject JSON 对象是键值对的列表,其中键是唯一的字符串,值由 QJs原创 2022-05-19 19:53:04 · 7723 阅读 · 0 评论 -
qt中QByteArray字节数组
QByteArray bb("Hello"); //创建字节数组 int n=bb.size(); //返回字节数组的大小 //不包括终止符 QByteArray ba;//创建一个空字节数组 ba.resize(6);//设置字节数组的大小 // 为终止符 ba[0] = 0x3c; //赋值 ba[1] = 0xb8; ba[2] = 0x64; ba[3] = 0x18; ba[4] = 0xca; .原创 2022-05-15 19:37:52 · 14290 阅读 · 0 评论 -
QByteArray与char、int、float(及其数组)之间的互相转化
int转4字节数组QByteArray SCL::intTo4ByteArray(int i){ QByteArray ba; ba.resize(4); ba[0] = (uchar)(0x000000ff & i); ba[1] = (uchar)((0x0000ff00&i)>>8); ba[2] = (uchar)((0x00ff0000&i)>>16); ba[3] = (uchar)((0xff...原创 2022-04-28 21:59:53 · 5560 阅读 · 1 评论 -
qt-项目部署(某些情况下编译器中运行异常的话可以使用命令windeployqt 程序名在安装的qt dos命令下补全部分依赖库在运行项目或发布)
Qt5Cored.dll和Qt5Core.dll文件分别用于Qt软件的Debug版和Release版。 通常会有两个Qt5Core.dll文件,分别位于Qti安装目录下的“Qt5.1.0\5.1.0\mingw48_32\bin”和“\Qt5.1.0\Tools\QtCreator\bin”两个目录中。其中“Qt5.1.0\5.1.0\mingw48_32\bin”目录下才是Qt项目运行时所需的库。但是,有时候在运行Release版项目时,却提示没哟找到Qt5Cored.dll。这是由于在编译R..原创 2022-01-11 20:49:52 · 754 阅读 · 0 评论 -
QT-QPainter绘制曲线等基本图形
Qt中绘制2D图形最核心的一个类是QPainter。类QPainter是在设备类QPaintDevice上绘制几何图形(包括直线、曲线、圆形、弧形、矩形等等),其中设备类QPaintDevice的子类又有QWidget、QImage、QPictrue、QPixmap、QOpenGLPaintDevice等,也即是说,我们可以继承这些类,通过重写QPaintEvent事件进行重绘,或者用事件过滤器捕获QPaintEvent事件信息进行响应重绘也行。一、原理讲解本文主要总结用类QPainter绘制直线、矩原创 2022-01-10 23:13:27 · 8183 阅读 · 1 评论 -
qt-信号和槽的连接写法
Qt4 旧语法:connect(sender, SIGNAL (valueChanged(QString,QString)),receiver, SLOT (updateValue(QString)) );Qt新语法:QLabel *label = new QLabel;QLineEdit *lineEdit = new QLineEdit;QObject::connect(lineEdit, &QLineEdit::textChanged, lab...原创 2022-01-08 15:42:20 · 810 阅读 · 0 评论 -
Qt调用动态链接库ControlCAN.dll实例
首先添加外部库文件(lib文件)一.添加第三方的头文件这个问题再简单不过了,不过我还是要说下。首先,添加头文件 #include "ControlCAN.h"然后,再将这个头文件放到工程的目录下,就OK了,非常的简单二.添加.lib文件首先,将.lib文件放到对应的工程目录下(当然,放到其他路径也可以)。 但是,仅仅做这一步是不行的,工程不会主动去包含这个.lib文件,你必须告诉他,lib文件在哪里,才可以。然后,在QT的工程中,你会看到一个.pro文件...原创 2021-12-30 20:59:28 · 3725 阅读 · 0 评论 -
Qt-调用dll动态链接库
事先写一个简单的dll文件(myDLL.dll),C版接口的。并且用我前两篇有关DLL文章里面的方法,从dll中导出了导入库(.lib)文件,dll中有两个函数,原型如下:voidHelloWorld(); //函数内部调用Win32 API,功能是弹出一个helloworld提示框intadd(inta,intb); //实现两个数相加,并返回结果下面分别通过显示调用和隐式调用两种方法,来模拟Qt如何调用外部dll文件中的功能函数预备知识: 1...原创 2021-12-30 20:44:54 · 9656 阅读 · 0 评论 -
Qt--在.pro文件中添加链接库的写法
要在Qt中使用OpenCV,按照OpenCV与Qt的环境搭建及Demo中的步骤配置了Qt Creator的编译选项,选择MSVC,再修改.pro文件:INCLUDEPATH += D:\Program Files\opencv\opencv3.4.0\build\includeCONFIG(debug, debug|release): {LIBS += -LD:\Program Files\opencv\opencv3.4.0\build\x64\vc14\lib \-lopencv_worl.原创 2021-12-27 19:41:32 · 2157 阅读 · 0 评论 -
Qt-手动布局
简述手动布局,可以实现和水平布局、垂直布局、网格布局等相同的效果,也可实现属于自己的自定义布局,当窗体缩放时,控件可以随之变化。其对于坐标系的建立有严格要求,纯代码思维,使用复杂,不易维护,所以一般不建议使用。下面我们以简单的例子来讲解如何使用。简述 事件 垂直布局 简略图 效果 源码 水平布局 效果 源码 总结事件在Qt之布局管理器一节中,我们介绍了对于手动布局的实现思路。通过QWidget::resizeEvent()来计算所需要分配的大小,原创 2021-12-27 19:42:33 · 539 阅读 · 0 评论 -
qt中QListView的用法和QModelIndex的使用
使用QTreeView,对于很多函数中针对item的唯一标识QModelIndex的使用,记录下两种对于QModelIdex的使用1,树形结构的item设置为选中QModelIndex rootIndex;QModelIndex robotsIndex;QModelIndex nonMobileIndex;rootIndex = treeView->model()->index(0, 0);//最顶层item的indexrobotsIndex = treeView->mod原创 2021-12-27 19:43:34 · 8756 阅读 · 0 评论 -
Qt-QMessageBox用法详解
QMessageBox 是 Qt 框架中常用的一个类,可以生成各式各样、各种用途的消息对话框,如图 1 所示。图 1 QMessageBox消息对话框很多 GUI 程序都会用到消息对话框,且很多场景中使用的消息对话框是类似的,唯一的区别只是提示信息不同。为了提高程序员的开发效率,避免重复地“造轮子”,Qt 开发者设计好了几种通用的 QMessageBox 消息对话框,需要时可以直接使用。通用的QMessageBox消息框Qt 提供了 6 种通用的 QMessageBox 消息对话.原创 2021-12-27 19:42:54 · 14623 阅读 · 0 评论 -
Qt-线程启动与关闭实例
养成资源回收的好习惯,任何时候都要想起开辟过的内存回收。就是利用关闭窗口时调用槽函数回收掉。具体步骤不难,如下:1)退出线程;2)回收子线程;3)释放子线程对象内存。(与Linux下的C不太一样.) //退出子线程 thread->quit(); //回收资源 thread->wait(); delete myT;/**********************************Qt创建线程有两种方式。第一种继承QThread重写run...原创 2021-12-26 11:50:22 · 4428 阅读 · 1 评论 -
QT-子线程或自定义类操作访问主界面UI控件的几种方法
前言QT创建窗体工程,一般在MainWindow或Dialog类里可以直接通过ui指针访问控件,但是添加新的类后又如何访问呢,可以通过以下几种方式:1.将ui指针公开后直接访问(1)例如有个自己定义的类CustomClass,在自定义类里包含主界面指针MainWindow *class MainWindow;class CustomClass{public: CustomClass(MainWindow * parent); MainWindow * mainwidow...原创 2021-12-26 11:42:06 · 8386 阅读 · 2 评论 -
QT c++ 中使用PostMessage/SendMessage实例
PostMessage是Windows API(应用程序接口) 中的一个常用函数,用于将一条消息放入到消息队列中。并且不会等待响应的线程处理消息,而是直接返回。(简单的理解就是异步)。而SendMessage作用一样,但是会等待结果返回(同步)我们先来看PostMessage函数的原型:BOOL WINAPI PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);hWnd:其窗口程序接收消息的窗口的句柄。可取有特定含义的两原创 2021-12-26 11:36:52 · 2777 阅读 · 0 评论 -
Qt匿名函数的写法
匿名函数也可以被叫做Lambda表达式,自C++11中引入该特性。本文主要介绍Qt里使用到的匿名函数。c11新特性中加入了lambda表达式,所以Qt 也支持需在.pro文件中加入CONFIG+=c++111. connect中使用connect中可以使用匿名函数代替槽函数进行一些简单操作。 原型: 1234567 //connect to a functortemplate <typename Fu...原创 2021-12-26 11:42:38 · 3349 阅读 · 0 评论