
Qt Widgets
文章平均质量分 72
QtWidgets的一些控件的介绍,还有一些常用的功能
十年之少
一点点学习,一点点积累
展开
-
静态分析工具clang-tidy ——Qt
现在很多人在开发中完全忽略了编译器、IDE的警告提示,这怎么可能写出稳定的程序。clang-tidy是一个由LLVM项目提供的开源工具,是一个静态分析工具,用于进行静态代码分析和代码质量改进。支持C++/C/Objective-C。clang-tidy提供了一种基于AST(抽象语法树)的检查方法,能够检测出代码中的多种潜在问题,包括内存泄漏、未使用的变量、类型不一致等。它还支持自定义检查器的创建,使得用户可以针对特定项目或代码库进行定制检查。转载 2025-03-11 13:51:02 · 215 阅读 · 0 评论 -
内存检测工具——Qt Creator
今天尝试了一下,不尽人意。原创 2025-03-11 10:39:54 · 1187 阅读 · 0 评论 -
使用国内镜像网站在线下载安装Qt(解决官网慢的问题)——Qt
qt安装包是阿里云官方提供的开源镜像免费下载服务,每天下载量过亿,阿里巴巴开源镜像站为包含qt安装包的几百个操作系统镜像和依赖包镜像进行免费CDN加速,更新频率高、稳定安全。比如我下载的版本是(exe文件名):qt-online-installer-windows-x64-4.8.1.exe ,这个属于试了好几个,就他不报错的一个镜像网站,可使用别的镜像网站,更换命令地址即可。cmd进入到工具路径下,输入命令,命令格式是。qt安装包下载_开源镜像站-阿里云。原创 2024-12-17 11:47:52 · 9429 阅读 · 4 评论 -
由中文乱码引来的一系列学习——Qt
解决中文引起的乱码,并不难,网上一搜就有好几个方法任君选择,但是解决乱码的这些方法的原理是什么,我一直没太明白。这次项目需要在Android环境下运行,而根据Qt跨平台的特性,我一般是在Windows环境下(MSVC2019_32bit)先进行测试:Windows环境下是是使用预编译(# pragma execution_character_set("utf-8"))解决乱码的,而我在Android下并没有使用任何措施防止中文乱码,但是Android下并没有出现中文乱码的情况,这个是为什么呢?原创 2024-11-06 15:34:02 · 846 阅读 · 0 评论 -
将子进程(exe)界面嵌入到主进程(另一exe)界面中——Qt
近期项目中,要将子进程界面嵌入到主进程中,双方都是自己开发的,之前有过研究,曾经写过一篇文章,如今发现不好用,界面是嵌入了,但是并没有按照要求的大小展示,通过了几种方法(布局、绝对位置)仍然行不通。原创 2024-04-29 14:05:40 · 1678 阅读 · 0 评论 -
QTextToSpeech的使用——Qt
The QTextToSpeech class provides a convenient access to text-to-speech engines原创 2024-03-14 13:59:00 · 1888 阅读 · 0 评论 -
Qt libqrencode二维码——QtWidgets
Qt 使用第三方库 libqrencode ,显示二维码。原创 2023-05-06 17:59:37 · 1626 阅读 · 0 评论 -
VS同时调试主程序和子程序工具
VS要想要实现同时调试主程序和子程序,可使用工具来实现。原创 2023-04-25 17:37:44 · 955 阅读 · 0 评论 -
QCustomPlot实现极坐标图——QtWidgets
前面用QtChart实现了极坐标图,感觉不是很方便,特别是一些点的图形,一般需要自己绘制,而QCustomPlot自带挺多的;还有极坐标的角度轴(即 圆圈),相比起来,QCustomPlot更为清晰。原创 2023-04-13 18:03:06 · 4420 阅读 · 3 评论 -
QtChart实现极坐标图(雷达图)——QtWidgets
突然好奇极坐标图(雷达图)是怎么实现的,就查了一下资料,发现有几种实现方法:一是QtChart实现;二是QCustomPlot实现;三是自绘。前两者都给了示例,所以我就学了学,后者自绘我尽力吧。原创 2023-03-31 14:43:27 · 5464 阅读 · 0 评论 -
如何定位Bug(WinDbg)——Qt
在写程序的过程中,不可避免出现各种Bug,如何快速的定位到Bug的位置,是程序员必备的技能之一。原创 2023-01-05 17:33:54 · 3060 阅读 · 0 评论 -
显示命令行控制台(cmd.exe)的几种方式——Qt、C++
最近帮朋友写小工具,其中涉及到显示命令行控制台,没想到理所当然的,变得不那么理所当然了。原创 2022-09-07 15:51:36 · 4009 阅读 · 1 评论 -
将外部exe嵌入到界面中(Windows)——Qt
之前只做过,在界面中调起外部程序exe,只用将QProcess启动即可。如今,尝试将外部的exe嵌入到Qt的界面中,基本实现了,感觉挺神奇的!原创 2022-07-22 16:39:14 · 6890 阅读 · 20 评论 -
QVariant与Json的各种纠葛——Qt
我之前虽了解QVariant的一些性能,但是没有与Json各种的互转。以前我解析Json后,是将其转化为我自定义的结构体,既方便看,又方便调用,就是解析转换的时候麻烦些;后续看到同事直接将Json转换为QVariant(或QVariantMap QVariantList),然后直接调用,觉得也不错,但是中间有一些迷糊的地方,所以在此处记录下来。先提醒一句,这也是我常犯的错误:千万别想着一步到位,QVariant存入的是什么类型,就将其转出什么类型!!!...原创 2022-07-01 12:11:14 · 4713 阅读 · 0 评论 -
QAudioInput: failed to open audio device
我在用Qt 录制声音时,发现了这么一个问题:当一点击录制,即调用QAudioRecorder::record(),控制台就会打印出,QAudioInput: failed to open audio device,刚开始我以为是我没配置好,后来发现是我权限没开,这就很尴尬了。win10打开权限的方法是:设置--> 隐私 -->麦克风将“允许应用访问你的麦克风”设置为“开”就可以了若不是这个问题,还可以下载一个应用:Audacity来测试环境问题。此软件是音频录制、编辑原创 2022-05-16 16:42:38 · 1391 阅读 · 0 评论 -
信号槽的返回值(QMetaObject::invokeMethod的用法)——Qt
概述Qt元对象系统是Qt最核心的一个基础特性,元对象系统负责信号和插槽对象间通信机制、运行时类型信息和Qt属性系统。为应用程序中使用的每个QObject子类创建一个QMetaObject实例,此实例存储QObject子类的所有元信息。通过元对象系统,你可以查询QObject的某个派生类的类名、有哪些信号、槽、属性、可调用方法等信息,然后可以使用QMetaObject::invokeMethod()调用QObject的某个注册到元对象系统中的方法。而这里,主要就介绍改函数的使用方法,以及大致简介。原创 2022-05-07 15:24:54 · 2983 阅读 · 0 评论 -
通过IP或者域名获取地理位置——Qt
前言现在通过IP获取所属地很火,不知道的请看微博:现在所有的用户都显示了IP的所属地。我今天在学习QHostInfo的函数lookupHost 的时候,发现它可以获取域名的IP,然后联想到怎么怎么通过IP获取其地理位置,然后查了查资料,做出来了玩了玩。效果图我测试分别测试了域名(www.baidu.com)和某个IP。原理先通过QHostInfo的静态函数:[static] int QHostInfo::lookupHost(const QString &.原创 2022-05-06 17:01:07 · 2821 阅读 · 9 评论 -
Qt的一些小功能——Qt
Q_GADGET:不需要从QObject继承就可以使用Qt的Meta Object功能 Q_ENUMS:对枚举对象进行反射(reflection) Q_SIGNAL:不需要signals关键字就可以将一个函数指定为singal函数 Q_SLOT:不需要slots关键字就可以将一个函数指定为slot函数 Q_FOREACH:Qt提供的关键字foreach在配置文件里面定义了no_keywords的时候就失效了,而Q_FOREACH宏无论何时都有效 Q_FOREVER:原因同Q_FOREACH,用法和转载 2022-03-28 16:47:31 · 505 阅读 · 0 评论 -
图片QPixmap和QByteArray之间的互转——Qt
今天在测试图片验证码的的显示问题时,想要模拟测试一下接口,我已写好的接口是将QByteArray转化为图片(QPixmap),然后在标签QLabel上显示。需要模拟的是入参,就是将图片(QPixmap)转化为QByteArray,本来以为一个接口的就能解决,可事情不是我们想象的那么简单。原创 2022-03-22 14:52:06 · 5153 阅读 · 4 评论 -
ini文件(QSettings)保存QNetworkCookie(或自定义结构体)——Qt
前言之前我用过QSettings写过ini文件作为配置文件,也用过QVariant变量(无论是官方支持的还是自定义的),但是在ini文件中,将QVariant的值作为Value进行保存,是没遇到过,也没做过.这次公司项目中涉及到将Cookie的值保存到本地,看到了大佬写的代码,然后才发现有这一写法 ,在此记录一下.说明和代码这里的实例也是我项目中的:将QNetworkCookie保存在ini文件中.由于QNetworkCookie不是属于QVariant支持的那些基本的类,所以QVari原创 2022-03-10 10:44:12 · 1122 阅读 · 1 评论 -
QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种)
转自:QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种) - jk-Huan - 博客园 (cnblogs.com)因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作:需要安装OpenSSL库:1、首先打开Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions网页;2、下载安装包,我下载的是:Wi转载 2022-03-03 16:38:25 · 3557 阅读 · 0 评论 -
判断是否打开某个进程——Qt&C++
两种方法都是参考网上的代码。C++方法#include<TlHelp32.h>/******************************************************************************************Function: GetProcessCountDescription: 获取指定进程数量Input: szExeName:进程名称,带.exe后缀Return:原创 2021-12-28 15:00:17 · 488 阅读 · 0 评论 -
设置鼠标形状——qml & QtWidgets
前言程序开发中不仅需要设计好功能模块,还需要完善小细节,比如鼠标悬浮在按钮上,鼠标形状变成小手。这篇博客我就介绍一下鼠标的形状是怎么设置的。鼠标形状设置以下是我在Qt帮助上截取的枚举所对应的鼠标形状,调用时qml用Qt.ArrowCursor,c++用Qt::ArrowCursor。具体的代码是qml:一般是在鼠标事件里设置鼠标形状的(属性cursorShape) MouseArea{ anchors.fill: parent; //小.原创 2021-12-21 13:37:36 · 2743 阅读 · 0 评论 -
展示文件系统及勾选联动——Qt
通过Qt展示文件系统及勾选联动原创 2021-12-08 14:26:51 · 1067 阅读 · 0 评论 -
QDir和QFile的一些小知识——Qt
前言我记性一直不好,特别是一些零碎的东西更是记不住。所以这里记录一下QDir和QFile常用到的一些小知识。QDir的一些小知识点创建文件路径()保存文件时,当需要保存一定的文件结构时,则需要创建文件路径,这个时候就用到了QDir的mkpath或mkdir,区别是:mkpath可以创建所需的多级文件结构,而mkdir只能创建一级。所以通常用的是mkpath。帮助上的描述是:bool QDir::mkpath(const QString &dirPath) constCrea原创 2021-11-30 17:11:19 · 854 阅读 · 0 评论 -
鼠标拖动调整窗口大小——Qt
转自:Qt——鼠标拖动调整窗口大小 - 去冰三分糖 - 博客园 (cnblogs.com)要求:鼠标移到界面边角时,鼠标样式相应地发生改变。实现方法一:重写mouseMoveEvent,如果鼠标没有按下,则根据鼠标在界面上的位置设置鼠标样式,如果鼠标按下,则根据位置判断该怎样调整界面大小,或者是拖动界面。思路如上,实现起来很简单。但是存在一个问题,如果界面中放了一些其它控件,比如listWidget,此时鼠标在界面边缘移动速度稍微快一些,mouseMoveEvent就会被子控件截获了,鼠标样原创 2021-11-01 18:38:05 · 4140 阅读 · 2 评论 -
常用的控件样式风格设置(qss)——QtWidgets
前言QtWidgets写界面,经常需要用qss来写样式风格。qss不难懂,也不难学,而且也不用特意去学,只需要复制粘贴(* ̄︶ ̄)。所以我在此整理一下,为了下次能够更快的设置好风格,我真是个热爱工作的好同志。常用控件样式风格设置各类按钮(QPushButton为例)QPushButton#searchButton{ color:#ffffff; background: #0275FF; border-radius: 3px;}QPushButton#searchB.原创 2021-05-19 18:00:46 · 6888 阅读 · 2 评论 -
QTextEdit内拖入图片——QtWidgets
前言QTextEdit是用来编辑和展示文本和富文本的一个控件。我之前一直拿它当纯文本编辑器(QPlainTextEdit)使,一直没啥机会去用一下他的富文本功能。这次有时间了,准备做一个可以添加图片的编辑框:拖入即可添加到编辑框。效果图实现的两种方式有两种方式,一种是根据动作想到了Drag 、Drop来实现;另一种是QTextEdit自带的方法实现。拖入、落下事件来实现一般在光标处添加图片,代码为 QImage img = ... textDocument..原创 2021-05-19 16:08:00 · 3842 阅读 · 0 评论 -
Qt http表单(/form-data)上传文件——Qt
前言http 表单格式的上传文件和以往我使用的上传文件不太一样所以记录一下,下次直接复制粘贴!代码这是我写的一段简单的测试代码,界面中只有一个按钮,通过点击按钮实现选择文件,上传文件等操作。void MainWindow::on_pushButton_clicked(){ //选择文件 QString filePath = QFileDialog::getOpenFileName(this, tr("添加附件"), "./", tr("Files (*.j原创 2021-04-13 15:26:46 · 4259 阅读 · 7 评论 -
Qt http post 表单访问数据——Qt
前言我之前只用QNetworkAccessManager进行我最常见的http访问,即访问头是"application/json",这种格式的。而现在同事给我的服务是http表单格式的,因为他们主要给Web前端提供服务,所以我就只好调整自己的格式设置了。说明和代码表单的发包方式有两种:application/x-www-form-urlencoded是最常用的表单发包方式,普通的表单提交,或者js发包,默认都是通过这种方式;如果需要传输文件,则就用到了multipart/form-data.原创 2020-12-29 14:30:06 · 2600 阅读 · 0 评论 -
滚轮控制界面滑动和加载数据(仿微信)——Qt
前言我们平时玩微信时都看到一个小功能:上翻消息时,有个“查看更多消息”的按钮(如下图),点击或者往上滚动滚轮,就可加载一定条的消息。然后,我也想在我界面中添加这种类型功能,滚轮滚动就可控制数据的加载。代码和说明写的例子是用滚轮来控制列表(QListWidget),界面滑动和加载数据。加载数据的逻辑是:当滚动到滚动条的最大值,在下一次滚动时,将会发出请求数据的信号,若有数据,则加载一定量的。因为我用的是列表(QListWidget),他的滚动条(QScrollBar)其实与滚轮没.原创 2020-08-31 16:19:14 · 1559 阅读 · 0 评论 -
自定义日历下拉框(Calendar Combo Box),日期选择器——Qt
前言Qt Designer中有字体下拉框,我这几天正在搞日历这块,所以就弄了个日历下拉框(Calendar Combo Box)。在日期选择这块,我之前都是用的QDateEdit,但是它的效果不好看,不如日历下拉框更直观些。代码及说明日历QCalendarWidget这部分,我已经在上一篇博客中介绍过了,这里就不再说了。那么,关于日历下拉这个效果怎么实现?我继承了QLineEdit,然后在里面加了一个按钮,控制日历的显示。为了让日历响应点击其他区域关闭的效果,我选择了用QMenu把日历.原创 2020-08-19 17:55:09 · 6333 阅读 · 4 评论 -
日历(QCalendarWidget)的使用及风格样式的设置——Qt
前言之前项目中没涉及过日历控件(QCalendarWidget),一般我是用简单的日期编辑器代替,对它的印象只存在于QtDesigner中丑的不行的日历控件。这次我要写类似企业微信的日程(如下图)功能的东西,这个就必须用到日历了(此篇博客只介绍日历的写法)。有两种方式实现:一是自己全部重写,二呢是,修改Qt自带的控件QCalendarWidget,难易程度我肯定选二个了,不过后续我想自己重写一个日历,这样自己更有自主权。效果图这次先把效果图放到前边吧,对比着代码看,更容易讲解。.原创 2020-08-14 18:02:56 · 18743 阅读 · 11 评论 -
表格和列表去虚线框的几种方式——Qt
去虚线框两者方式:设置焦点策略为无焦点因为虚线框是针对焦点设置的qss,所以当把策略设为无焦点,就根本不会有焦点,也就是根本不会出现虚线框了。ui->listWidget->setFocusPolicy(Qt::NoFocus);直接修改qss将虚线框线宽设为零,也就不存在了。个人比较推荐这种解决方法,这样就不会影响后续针对焦点的操作。QListWidget{ outline:0px;}...原创 2020-08-14 11:00:41 · 471 阅读 · 0 评论 -
给界面添加滚动条(QScrollArea的用法)——Qt
前言之前不知道为什么我没怎么直接操作过滚动条,一般都是表格、列表什么的自带的,当超过控件长度或高度,就会自动出现,而我要做的就只是设置下滚动条的样式就可以了。而现在项目需求:我需要在QWidget上添加滚动条,我用QtDesigner在界面上放了QScrollArea,它会直接连带出一个叫scrollAreaWidgetContents的QWidget,我原以为这个比较智能(当scrollAreaWidgetContents上的控件位置超出区域就会出现滚动条),后来是我想多了。说明和代码.原创 2020-07-22 16:44:25 · 15772 阅读 · 2 评论 -
QComboBox样式设置——Qt
前言我对qss只会一些简单的,所以每次都得查资料,自己调,好麻烦,特别是之前一篇博客关于菜单样式的设置。这次以为两者相似,结果不是的。这个QComboBox下拉框的样式设置有稍微复杂,有些关键点得记住,所以用这篇博客记录下。代码和说明有图有真相,我现在将QComboBox样式表中的部分关键词标出来,更直观一些:QComboBox常规样式图中QComboBox我只圈出了上面一部分,按理说整个都是属于QComboBox,但...原创 2020-07-17 17:09:07 · 36659 阅读 · 25 评论 -
多界面切换技巧——Qt
前言微信中需要很多界面之间的相互切换,比如各种聊天对话框的转换。这么多的界面是怎么实现切换的,而内存大小稳定在一定的水平下,而不是界面的一直随着界面的增长而增长。我写了类似的微信的东西,我算了算大概有三十左右个界面,若全部实例化,那将会挺大的,而且也不合适,有的界面出现的频率并不是很大,若只因出现了一次,就一直保存着这块内存,很浪费。所以我想了个解决办法,可能不是最优化的,但是也是有些作用的。思路及代码我的思路就是:将界面进行标号,分为常用和不常用的,若是不常用的,若被切换掉后就将此移除,继原创 2020-06-12 09:54:51 · 1018 阅读 · 0 评论 -
QObject的setUserData和setProperty——Qt
前言很多时候需要界面存储一些数据或信息,这样可以根据这些数据或信息来了解或获取点什么。可以说给界面增加一个标记,让我们更容易辨识。我之前一直习惯给列表项QListWidgetItem或者树项QTreeWidgetItem携带一些数据,比如id,用setData来实现。所以这次就想QWidget有没有类似的方法,结果就找到了setUserData。后来在mac os中重新编译时,发现setUserData不可用了,建议用setProperty替换。用法我现在用的Qt的版本是Qt5.14 .原创 2020-06-11 15:22:38 · 7474 阅读 · 0 评论 -
菜单项的定制,QWidgetAction的使用——Qt
前言有时候需要菜单项显示的不仅是简单的文字,需要显示一个控件或界面,这时候QWidgetAction该上场了。代码和效果QWidgetAction继承的QAction,有QAction一切功能,在此基础上增加了。结束语...原创 2020-06-11 10:43:43 · 6027 阅读 · 1 评论 -
QMenu常规使用和样式设置——Qt
前言现在的项目需要设置菜单的样式,菜单也不说有多复杂,很简洁的一个效果。但是我用了一个多小时才试出想要的效果。虽说我样式写的不多,只会一些简单的,但是这个打击还是有的。我想后续我要好好学学风格样式这块了。使用和样式设置使用菜单的使用很简单,看一样就知道,我觉得需要注意的是菜单项需要显示位置的设置:位置是全屏的坐标点,所以注意坐标的转换。void MainWidget::initMoreFuncMenu(){ m_pMoreMenu=new QMenu(this); ..原创 2020-06-10 17:50:01 · 20939 阅读 · 7 评论