
QT
文章平均质量分 69
QT学习记录
Sakuya__
这个作者很懒,什么都没留下…
展开
-
Qt QComboBox的QSS美化
【代码】Qt QComboBox的QSS美化。原创 2025-01-14 11:32:37 · 410 阅读 · 0 评论 -
QTreeView模糊查询
本文代码效果如下:本文代码:https://download.youkuaiyun.com/download/Sakuya__/89759410https://download.youkuaiyun.com/download/Sakuya__/89759410MainWindow.hMainWindow.cpp原创 2024-09-16 15:08:59 · 499 阅读 · 0 评论 -
Qt Q_Q和Q_D宏
最近在一些Qt的开源项目中看到有使用到Q_Q和Q_D宏,使用后就可以使用q和d两个指针访问其他类里面的成员变量。好奇这两个宏的作用是什么,就去学习了一番,这里记录一下,防止以后忘记。在最前面,先简单说一下这两个宏是做什么的。它们主要用于实现一种称为d-pointer(或pimpl)的设计模式,这种模式可以隐藏类的实现细节,提高编译效率和二进制兼容性。Q_D宏的主要作用是简化私有数据的访问,Q_Q宏用于在私有实现类中访问公共类的指针。原创 2024-09-16 14:47:54 · 1089 阅读 · 0 评论 -
Qt 登录界面
本文代码效果如下: 本文代码:https://download.youkuaiyun.com/download/Sakuya__/89607657https://download.youkuaiyun.com/download/Sakuya__/89607657LoginTitleBar.h 自定义的透明标题栏LoginTitleBar.cppLogin.h Login.cpp原创 2024-08-02 12:23:08 · 501 阅读 · 0 评论 -
Qt QListView自定义树状导航控件
大部分的软件都有多个页面,这时候就需要一个导航栏控件,通过在导航栏中选择某一栏,同时显示对应的页面。本文代码效果如下:本文的导航栏控件基于大佬 feiyangqingyun 的导航栏控件博客做了美化,修复了一些会导致崩溃的bug。本文代码:也可以在这里下载大佬的代码学习:NavListView: Qt 自定义的树形导航控件。原创 2024-06-11 16:04:50 · 1521 阅读 · 0 评论 -
QtConcurrent和QFuture的使用
Concurrent是并发的意思,而QtConcurrent同std一样,是一个命名空间(namespace),想使用它需要先在Project工程文件中导入模块,并包含头文件QtConcurrent提供了一些高级的 API,使得在编写多线程的时候,无需使用低级线程原语,如读写锁,等待条件或信号。使用QtConcurrent编写的程序会根据可用的处理器内核数自动调整使用的线程数。QtConcurrent中使用最多的是它的run()函数,每调用一次函数,就会新建立一个线程运行我们让它执行的函数。原创 2023-08-29 14:38:06 · 1253 阅读 · 0 评论 -
QMap或结构体根据value排序
QMap是Qt的一个关联式容器,可以用于存储键值对,并提供了快速的查找和访问方式。当我们向QMap中插入元素时,默认按照键值对的大小升序排序。如果我们现在有一个这样一个需求,QMap<QString, double> map,存储的数据为名字对应值,如:(apple, 12.2),(orange, 23.3),(banana, 10.5)。原创 2023-08-25 14:19:50 · 1190 阅读 · 0 评论 -
Linux Qt连接达梦数据库
最近因为工作需要,需要使用Qt连接达梦数据库,在Linux上比较麻烦,首先需要自己编译UnixODBC和Qt的QODBC库,其次还有各种环境配置。这里在安装好后记录一下,以后找起来方便。原创 2022-12-18 03:01:36 · 7895 阅读 · 0 评论 -
Windows Qt连接达梦数据库
在Windows系统下安装达梦数据库,并配置ODBC,使用QT连接达梦数据库原创 2022-12-15 01:44:06 · 4786 阅读 · 1 评论 -
银河麒麟V10 + 飞腾CPU编译安装 Qt5.9.9
在任意空闲位置新建文件夹,并将源码包放到该目录下。(这里在/home目录下新建名为Qt_Source的文件夹,注:该目录所在位置的空闲空间应大于等于15G)。原创 2022-12-09 16:56:41 · 11692 阅读 · 5 评论 -
QT 在静态函数中发送信号
QT,在静态函数中发送信号原创 2022-11-11 00:04:29 · 3232 阅读 · 0 评论 -
QT 读Excel表格
#ifndef UICOMMONMODULE_AXEXCELFUNCTION_H#define UICOMMONMODULE_AXEXCELFUNCTION_H#include "UI/ComDefined.h"#include <QObject>#include <QColor>class QAxObject;namespace UICommonMdl{ typedef enum { AX_EXCEL_NULL = 0, //EXCEL未存在 AX.原创 2022-04-13 11:27:22 · 881 阅读 · 0 评论 -
QT QWebEngineView加载百度地图
Qt5.5之后使用新的QWebEngineView代替了之前的QWebKit,加载数据的方式也由同步变成了异步。所以访问网站页面和加载HTML页面都需要使用QWebEngineView类。项目要求在程序中显示地图,并能够通过串口接收无人机上图传里的GPS实时传回来的经纬度,并在地图上画出无人机的飞行轨迹。由于需要在QT中加载百度地图,所以需要用QWebEngineView进行QT与HTML/JavaScript的交互,在HTML文件中调用百度地图的API显示地图和地图上的一些控件。因为要实时显示无人机的原创 2020-05-10 03:22:45 · 6123 阅读 · 7 评论 -
QT 国际化
最近在做软件的中英文切换功能,所以找了些资料,研究了一下Qt的国际化,这里分享一下。现将实现方式记录下来,也是方便自己以后查找。效果代码之路...原创 2020-05-09 02:50:06 · 639 阅读 · 0 评论 -
QT 在子窗口中调用主窗口的UI
在QT中,我们时常会需要在主窗口里添加一些子窗口,比如添加一个新的对话框,或者在TabWidget中添加tab页面。通常添加子窗口后,如果在子窗口中做了一些操作,我们需要在主窗口中通过UI控件反映出来,但是由于ui对象是私有对象,所以一般的做法是使用QT中的信号槽机制,连接主窗口和子窗口对象,然后发送信号即可。但是这种方法也有弊端,就是当我们在子窗口中有很多操作需要在主窗口中表现出来,我们就需...原创 2020-05-02 16:00:20 · 9763 阅读 · 8 评论 -
QT pro文件中路径设置、调用dll
一、描述工程工程文件.pro描述了工程信息。工程文件信息会被qmake用于生成包含构建过程中所需的所有命令的MakeFile。工程文件通常包含一系列头文件和源文件,通用配置信息以及音乐程序指定的细节,如应用程序的链接库、搜索路径。工程文件包含一定数量的不同元素,如注释、变量声明、内置函数以及简单的控制结构。在大多数简单的工程中,只需要声明使用简单配置选项构建工程的源文件和头文件即可。...原创 2020-04-22 12:56:08 · 8519 阅读 · 3 评论 -
QT 对QString字符串的操作
QString是QT提供的字符串类,相应的也就提供了很多很方便对字符串的处理方法。这里把这些对字符串的操作做一个整理和总结。1. 将一个字符串追加到另一个字符串的末尾QString str1 = "hello ";QString str2 = "world";str1.append(str2); // str1 = "hello world"st...原创 2019-02-22 11:49:57 · 32848 阅读 · 2 评论 -
QT 对文件的操作(创建、拷贝、写入、删除)
简述在QT中,我们时常要对文件进行各种操作,比如文件的创建、写入、拷贝和删除等等,这些都要用到QFile类。QFile类提供了读写文件的接口。一般情况下,我们可以直接在调用构造函数的时候传递文件名,这是比较方便的方法。或者使用QFile创建对象,再调用setFileName()方法来设置文件路径。其中文件名中的路径分隔符要求必须是'/',其他分隔符QFile不支持。常用接口Q...原创 2019-02-20 20:41:42 · 36751 阅读 · 4 评论 -
QT TableView自定义委托
简述在经典的 MVC 模型中,view用于向用户展示 model 的数据。但是,Qt提供的不是 MVC 三层架构,而是一个 model/view 设计。这种设计并没有包含一个完整而独立的组件用于管理用户的交互。在这种结构中,为了获得对用户输入控制的灵活性,这种交互工作交给了delegate,也就是“委托”,去完成。简单来说,就像它们的名字一样,view 将用户输入委托给 delegate 处理...原创 2019-03-29 19:32:19 · 3597 阅读 · 0 评论 -
QT 串口通信助手
简述最近整理了一下以前写过的代码,把之前的一个上位机程序里的串口功能独立出来,也就相当于一个串口助手。这个串口助手可以实现串口的波特率、校验位、数据位等的设置,有接收区和发送区,发送可以选字符串发送和十六进制发送。下载地址:https://download.youkuaiyun.com/download/sakuya__/11085991效果另外,还可以实现拖动文本文件到发送区,...原创 2019-03-27 14:14:56 · 1116 阅读 · 0 评论 -
QT 程序发布以及用Inno Setup打包成安装包
简述我们在用Qt写完程序后,如果要把程序给别人用,或者发布程序,当然不会只把exe文件给别人。因为我们不可能让所有用我们程序的人电脑上也要装上Qt,然后配置好环境,那样也太麻烦了。C++的程序中大部分都是使用的动态链接库,往往一个程序里会带着很多的dll,如果自己去找dll再复制到exe程序所在目录下,很可能丢三落四,导致exe在别的电脑无法正常运行。那我们怎么把程序所需要的dll全找出来再打...原创 2019-04-15 16:34:23 · 3875 阅读 · 0 评论 -
QT 程序启动动画
简述我们日常用的很多软件都有启动动画,比如Visual Studio和PyCharm在打开软件之前都会有一个加载各种组件的过程。它们的启动动画就是告诉你程序正在打开的过程中,正在加载组件,而不是让你以为程序没有启动。那么,QT中可不可以实现这样的效果呢,当然是可以的。QT提供了QSplashScreen这个类来实现启动动画的效果。效果代码之路最基本的...原创 2019-04-02 16:23:30 · 4719 阅读 · 1 评论 -
Inno Setup打包教程
简述Inno Setup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年,现在已经更新到Inno Setup 5了。Inno Setup是一个十分简单实用的打包小工具,可以按照我们自己的意愿设置功能,稳定性也十分好。官方网址:http://www.jrsoftware.org/安装教程一、下载安装官方下载地址:http://www.jrsof...原创 2019-04-15 16:34:00 · 9209 阅读 · 5 评论 -
QT 进程间通信——文件映射
简述在Windows中,在同一台机器上数据共享的最底层机制就是内存映射文件。在我们处理较大文件的时候,通常需要使用文件映射,即将物理地址中的文件数据映射到进程的虚拟地址中。通过文件映射之后,可以像操作内存一样去直接操作文件,而不需要再调用文件读写方法了。内存映射文件可以用于这几个不同的目的: 系统使用内存映射文件,以便加载和执行. exe和DLL文件。这可以大大节省页文件空间和应用程序...原创 2019-04-25 16:47:46 · 2407 阅读 · 0 评论 -
QT 进程间通信——共享内存
简述共享内存(Shared Memory)是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝。共享内存实际就是内存映射的一种特殊情况。在《windows核心编程》写道:在Windows中,在同一台机器上数据共享的最底层机制就是内存映射文件。这种数据共享机制是通过让两个或多个进程映射同一个文件映射对象的视图来实现,意味着在进程间共享相同的物理存储页面。对多个进程共...原创 2019-04-30 14:24:12 · 4934 阅读 · 0 评论 -
QT 进程间通信——剪切板
简述剪贴板(Clipboard)是由操作系统维护的一块内存区域,这块内存区域不属于任何单独的进程,但是每一个进程又都可以访问这块内存区域,而实质上当在一个进程中复制数据时,就是将数据放到该内存区域中,而当在另一个进程中粘贴数据时,则是从该块内存区域中取出数据。从剪切板的定义中我们可以看出,剪切板和共享内存差不多,都是在系统中使用一块公共的内存,只是共享内存的公共内存是我们自己申请创建的,剪...原创 2019-05-06 14:10:29 · 1320 阅读 · 0 评论 -
QT 进程间通信——Socket通信
简述通过Qt提供的QtNetwork模块即可实现进程间通信,TCP/IP在实现应用程序和进程内部通信或与远程进程间的通信方面非常有用。QtNetwork模块提供的类能够创建基于TCP/IP的客户端与服务端应用程序。为实现底层的网络访问,可以使用QTcpSocket、QTcpServer和QUdpSocket,并提供底层网络类。还提供了使用常规协议实现网络操作的QNetworkRequest、Q...原创 2019-05-24 11:16:04 · 8835 阅读 · 6 评论 -
QT 任务栏进度条
简述我们下载东西的时候都会想知道自己下载多少了,还有多久可以下完,但是我们也不可能一直盯着程序中的进度条看,还要去做别的事。这时候任务栏进度条就有用了,我们可以在做别的事时只需要看任务栏进度条就能够知道下载的进度了,很多软件都有这样的功能,比如谷歌浏览器、迅雷。 ...原创 2019-05-31 11:46:04 · 2659 阅读 · 1 评论 -
QT 实现FTP客户端
一、简述本文基于QT5.8使用QNetworkAccessManager类进行利用FTP协议的上传和下载操作,Qt4中使用的QFtp模块在QT5后被移除,如果有需要可以去GitHub上下载编译后使用(官方地址:https://github.com/qt/qtftp),使用QFtp和QUrlInfo可以实现获得服务器端的文件路径,结合TreeWidget实现目录预览。现在官方推荐使用的是QNet...原创 2019-01-29 12:51:08 · 19897 阅读 · 13 评论