Qt
文章平均质量分 86
Qt内容
芒果黑
这个作者很懒,什么都没留下…
展开
-
QWebEngine应用---执行javascript
WebEngine执行javascript,修改页面的显示和交互原创 2023-07-05 20:48:14 · 1027 阅读 · 0 评论 -
QWebEngine应用---cookies存储及自动登录
QWebEngine实现cookies存储及自动登录原创 2023-07-04 20:53:20 · 1995 阅读 · 0 评论 -
QWebEngine应用(一)
很早以前就听说过Qt也能显示网页,一直没有机会真正研究应用起来,刚好最近项目中使用到了QWebEngine内嵌浏览器打开第三方的网站,使用的Qt版本为5.15,踩了不少的坑,这里做个总结。原创 2023-07-03 21:01:38 · 1189 阅读 · 0 评论 -
QLibrary动态加载类
本篇文章主要介绍QLibrary加载动态库的基本用法,其中加载C++类的用法Qt文档是没有介绍的,这里介绍其基本的用法原创 2022-10-06 11:09:50 · 2522 阅读 · 0 评论 -
Qt属性系统及其用法
Qt属性的运用原创 2022-07-03 13:29:34 · 2518 阅读 · 0 评论 -
Qt调用python
Qt调用python,实际上就是c++调python,网上搜会出来很多,介绍得也比较全。这里做个记录安装及使用安装python,官网下载,按自己的需要是py2还是py3,是32位还是64位,这里就不多介绍了安装完后找到安装目录,在pro文件链接py库INCLUDEPATH += C:/Users/xx/AppData/Local/Programs/Python/Python39/includeLIBS += -LC:/Users/xx/AppData/Local/Programs/Py原创 2021-07-29 18:31:59 · 10665 阅读 · 20 评论 -
Qt机制——隐式共享
何为隐式共享?引用官方文档的解释共享类由指向共享数据块的指针组成,该指针包含引用计数和数据创建共享对象时,它将引用计数设置为 1。每当新对象引用共享数据时,引用计数就会增加,当对象取消引用共享数据时,引用计数会减少。 当引用计数为零时,共享数据被删除在处理共享对象时,有两种复制对象的方法。深拷贝--复制新的对象 浅拷贝--引用拷贝,即只是一个指向共享数据块的指针就内存和 CPU 而言,进行深度复制可能会很昂贵。 进行浅拷贝非常快,因为它只涉及设置指针和增加引用计数。隐式共享对象的原创 2021-07-20 19:15:50 · 1682 阅读 · 1 评论 -
linux qt编译c语言共享库
Qt Creator支持编译生成c++库,打开新建工程,根据创建向导,能够很快生成c++共享库的工程创建向导上显示的是c++的库,c语言的库也同样能够生成,下面对生成c语言的共享库做个介绍生成c共享库1.首先按生成c++库的方式生成工程,过程就不罗列了,根据要求自行选择创建完成后,生成以下几个文件其中testclib是默认生成的类,TestClib_global.h是生成库需要的宏2.把testclib.cpp后缀改为.c3.删掉默认的类,添加自己的接口,每个接口前面原创 2021-07-01 19:03:03 · 1261 阅读 · 2 评论 -
体验Qt for WebAssembly(二)
上一篇说到Qt Creator配置WebAssembly,通过Qt Creator编译Qt程序并运行我们可以看到编译生成以下几个文件Generated file Brief Description app.html HTML container qtloader.js JS API for loading Qt apps app.js JS API for loading Qt apps app.wasm emscripten app binary原创 2021-05-27 23:34:22 · 1332 阅读 · 0 评论 -
【Qt】linux下源码安装
linux下Qt只提供amd64架构的安装包,其他架构如arm、mips等架构是不能直接安装的,需要自行编译Qt源码进行安装才能使用下面记录linux-x11系统下编译Qt源码的流程,linux-x11,主要区别于嵌入式linux(Embedded Linux)Linux-x11图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统。X 是协议,就像HTTP协议,IP协议一样,一个基于X的应用程序需要运行并显示内容时他就连接到X服务器,开始用X协议和服务器交谈,告知服务器要显示原创 2021-05-24 18:57:39 · 2516 阅读 · 0 评论 -
体验Qt for WebAssembly(一)
Qt号称“One framework. One codebase. Any platform”,一份代码,全平台运行,通过WebAssembly,Qt程序也能在浏览器上运行什么是 WebAssembly?WebAssembly(缩写为 wasm)是一种使用非 JavaScript 代码,并使其在浏览器中运行的方法。这些代码可以是 C、C++ 或 Rust 等。它们会被编译进你的浏览器,在你的 CPU 上以接近原生的速度运行。WebAssembly就是用来解决JavaScript 当前存在的一些效率等原创 2021-05-22 14:30:21 · 6047 阅读 · 1 评论 -
【Qt】x509证书操作之获取证书链并验证
Qt提供证书验证的接口static QList<QSslError> verify(QList<QSslCertificate> certificateChain, const QString &hostName = QString());原创 2021-05-14 21:10:23 · 2667 阅读 · 1 评论 -
【Qt】x509证书操作之解析证书信息
证书信息函数 功能 QByteArray version() const 版本号 QByteArray serialNumber() const; 序列号 QString issuerDisplayName() const; 颁发者common name(CN) QString subjectDisplayName() const; 使用者common name(CN) Q原创 2021-05-13 00:10:00 · 3266 阅读 · 0 评论 -
【Qt】x509证书操作之加载证书
Qt提供QSslCertificate实现对x509证书的一些基本操作,如获取证书的信息、证书格式转化、证书验证等,搭配QSslSocket实现ssl通信,所以提供的功能不多证书加载QSslCertificate构造函数支持QIODevice的文件描述符和QByteArray证书内容的传参,证书格式为der或pem,格式需对应才能解析explicit QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::P原创 2021-05-11 23:34:32 · 2053 阅读 · 0 评论 -
Qt简易实现图片立体旋转效果
前言今年情人节刚好是过年期间,趁着过年有时间撸点代码,来个程序员的浪漫。去年七夕整了个抽奖的app,这次就整个有浪漫效果的程序就好了经过在github上一番搜索,找到了一个相对满意的效果,这个效果包括雪花飘落、图片立体旋转、荧光字体闪烁、音乐及字幕播放就参照这个效果使用Qt进行实现,做成客户端的方式进行展示我的效果时间紧迫只能粗略的做成这个效果,雪花效果网上找得现成的,荧光字也没时间做成动画由于效果比较粗糙,适合娱乐使用,真正项目中使用还是差了些图片立体旋转效果实现立原创 2021-02-24 23:51:45 · 2772 阅读 · 1 评论 -
【Qt】关于QStringLiteral和QLatin1String
最近在看Qt Creator源码的时候,发现代码中字符串的地方很多都用到QStringLiteral和QLatinString,就查了一下这两个是做什么用,就在这里记录一下这两个的用法。QStringLiteral(str)QStringLiteral是一个宏,该宏在编译时从字符串文字str中为QString生成数据。 在这种情况下,可以从中免费创建QString,并且将生成的字符串数据存储在已编译目标文件的只读段中对于一下代码// hasAttribute takes a QString原创 2020-11-10 22:02:47 · 1863 阅读 · 0 评论 -
uos下打包Qt程序
UOS下打包Qt程序,其实就是在linux下进行打包,网上关于ubuntu下的打包内容比较多,uos属于Debian类的linux系统,和ubuntu一样,所以和ubuntu下的打包方法是一样的。1.首先编写一个release应用程序2.创建一个名为copylib.sh的脚本,内容如下#!/bin/bashLibDir=$PWD"/lib"Target=$1lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:spac原创 2020-10-27 19:01:08 · 1281 阅读 · 2 评论 -
七夕节基于Qt Android给女朋友做个转盘抽礼物的App
前言临近七夕,看到抖音上的excel表格做的七夕抽奖,突发灵感,想着用代码也整一个出来。想着做个小程序效果最好,但自己没做过小程序,时间紧迫很悬;做个pc应用,那时最拿手的,很快,但要在电脑上打开才能看,局限性太大;最后决定做个安卓应用,用Qt就能做,装好后还能留存在手机中。抽奖原理...原创 2020-08-30 14:31:47 · 2244 阅读 · 0 评论 -
【Qt】qt自定义开关控件
基于QWidget实现一个简单的开关控件,效果如下原创 2020-08-27 09:17:24 · 1005 阅读 · 0 评论 -
【Qt】Qt5.12第一次编译安卓工程卡在下载gradle.zip文件
Gradle是安卓工程的构建工具,能够提供依赖、打包、部署、发布等工作。所以在第一次编译安卓工程时候会进行搭建gradle。编译的时候在编译输出部分看到卡在Downloading https://services.gradle.org/distributions/gradle-4.6-bin.zip不动。这个下载链接在浏览器中打开能够很快的下载,我也不懂为什么就卡主了。网上找到了gradle的默认下载路径为C:\Users\Mango\.gradle\wrapper\dists\gr原创 2020-08-12 20:53:58 · 4426 阅读 · 8 评论 -
关于警告 warning: control may reach end of non-void function
c++下出现warning: control may reach end of non-void function的警告,msvc和gcc都会出现这个警告,这个警告一般都是函数某个流程缺少了返回值,虽然仅仅是警告,可以编译通过,运行也貌似没问题,但是在linux下打包出来的程序,运行后就会出现闪退,在开发环境下运行又没事,这种莫名其妙的闪退很容易让人摸不着头脑,所以这个警告最好是解决掉。...原创 2020-07-20 18:34:14 · 1767 阅读 · 0 评论 -
【Qt】动画使用及惯性效果
动画惯性先看个效果图收下来和展开会有一个惯性的效果,这个使用QPropertyAnimation可以实现的,是通过设置setEasingCurve来实现的我们来看看这个函数,传参是传QEasingCurve的类型,根据官方文档的介绍,QEasingCurve类提供用于控制动画的缓动曲线,我们上面效果的动画就是有现成的缓动曲线,QEasingCurve总共支持一下的缓动曲线上面的例子我们使用到了InBack和OutBack两种。我们来看这两种的曲线:...原创 2020-07-12 17:46:31 · 2077 阅读 · 0 评论 -
【报错】Qt报错 error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”
出现这个报错,网上搜出来的都是使用vs出现的问题,都是vs的解决方法。找到一篇关于Qt的,地址:https://blog.csdn.net/caoshangpa/article/details/51416077就是参照vs的设置方法,在qt设置相同的方式,只不过Qt是通过pro文件进行设置按照文中的设置方法,我这边只需要设置: CONFIG(debug, debug|release) { QMAKE_CXXFLAGS_DEBUG += /MTd }原创 2020-07-09 20:45:09 · 7413 阅读 · 11 评论 -
【报错】Qt报错Expression: __acrt_first_block == header
具体原因可参考这篇文章https://cloud.tencent.com/developer/article/1434344大概意思就是采用静态链接编译(/MT)方式,调用的库返回的对象的内存是在所调用的dll处开辟的,本地程序用完该对象释放资源就是抛出这个异常。由于我项目调用的库必须使用/MT方式,所以也出现了这个问题。看看我出现的情况: QString pfxPassStr = jsonObj.value("pfxpass").toString();原创 2020-07-09 20:33:02 · 1442 阅读 · 0 评论 -
【Qt】关于Qt翻译的要点
Qt翻译用法就是使用tr(),把需要翻译的内容包含起来,生成翻译文件.ts,就能够使用qt的翻译工具或者直接打开进行翻译,具体得用法就不详细说了。其中tr(),是有三个参数的第一个参数就是需要翻译的内容,第二个参数是注释,第三个参数是一个单复数的值,这里主要讲的是第二个参数。使用第二个参数进行测试,代码为:生成ts文件后,使用qt自带的翻译工具打开是会多出一栏开发人员注释,这个就可以添加我们需要翻译的内容,这样就可以直接复制到翻译那一栏,就很方便了使用第二个参数进行注释还原创 2020-07-06 18:47:51 · 3078 阅读 · 0 评论 -
【Qt】linux下Qt使用libcurl进行post请求
项目中使用qt的QNetworkAccessManager进行post请求,请求完成后过一会就崩溃了,没找到是什么原因。只能另想他法了,就想着使用其他库来实现,就用起了大名鼎鼎的libcurl。下面介绍linux下qt使用libcurl。首先安装libcurlgithub下载curl的源码,地址为:https://github.com/curl/curl,选择clone下载 解压后进入目录,按顺序执行./buildconf (产生configure配置文件) ./configure m.原创 2020-07-02 19:06:43 · 4070 阅读 · 3 评论 -
【Qt】linux下qt程序打包无法识别键盘、无法输入中文问题
uos下打包的qt应用程序无法识别到搜狗输入法,无法输入中文,该问题和QtCreator无法输入中文是一样的原因,就是缺少最新的fcitx库,只需要把这个库放到打包那里就好了。由于这个库我之前就更新过了,放在了目录/Qt5.12.8/5.12.8/gcc_64/plugins/platforminputcontexts把platforminputcontexts整个文件夹复制到安装包目录下,删掉另外三个库即可。注意是必须放在这个文件夹下,直接放在安装目录下是不行的...原创 2020-07-02 18:32:10 · 1092 阅读 · 0 评论 -
【Qt】QGraphicsItem无法触发mouseMoveEvent问题
graphics体系中graphicsitem重载鼠标事件,item只触发press事件,没有触发move和release事件,scene和view都能触发press、move、release事件。经过看帮助文档,查看graphicsitem mousemoveevent的说明翻译后是:可以重新实现用于事件事件的该事件处理程序,以接收该项目的鼠标移动事件。 如果确实收到此事件,则可以确定该项目也收到了鼠标按下事件,并且该项目是当前的鼠标捕获器。在事件上调用QEvent :: ignore原创 2020-05-14 18:43:40 · 8586 阅读 · 8 评论 -
【Qt】windows下检测是否连接外网
这里通过ping百度的网址进行判断是否连接外网使用ping的命令:ping www.baidu.com -n 2 -w 1000其中-n 表示要发送的请求数,-w 表示等待每次回复的超时时间(毫秒)用法:bool checkPublicNet(){ QString networkCmd = "ping www.baidu.com -n 2 -w 500"; ...原创 2020-03-23 20:54:53 · 1492 阅读 · 0 评论 -
【Qt】qt获取网络时间
Qt的QDateTime提供获取本机时间,但本机时间有时候是不准的,当需要获取准确的时间时,需要联网获取时间。网上搜索了一下,找到了一个能用的--http://www.cppblog.com/gaimor/archive/2012/07/24/184905.aspx?opt=admin。根据里面的方式把udp的连接和获取消息改成了阻塞的方式。下面直接上代码:qint32 WebTimeG...原创 2020-01-06 14:04:39 · 4251 阅读 · 2 评论 -
QLabel使用html显示文本
QLabel的文本显示是支持html标签的,使用html有时候能很便捷的实现一些效果。这里记录一下。显示超链接ui->label->setText(tr("Learn more please visit: <a style=color:#32bc84; href = http://www.baidu.com>www.baidu.com</a>"));...原创 2019-12-13 18:31:28 · 5327 阅读 · 1 评论 -
【Qt】实现波浪动画效果
所谓的波浪动画效果,就是多个正弦波形组合的效果。先看看效果:既然要画正弦波形,那就得先来了解正弦波,要绘制正弦波,其函数必须要了解。下面重拾高中知识,再一次再进正弦函数正弦函数的物理意义:y = A * sin(ωx + φ) ,A叫做振幅,T = 2π/ω叫做周期,f = 1/T = ω/2π叫做频率,ω叫角频率,ωx + φ叫做相位,x = 0时的相位φ称为初相由...原创 2019-11-27 18:14:01 · 2460 阅读 · 2 评论 -
QtChart柱状图动态加载数据
QtChart是qt自带绘制图表的模块。其用法的一些关键点比如安装的时候需要选择QtChart的模块,main函数需要使用QApplication等,很多博客都有说明。官方文档只有数据写死的demo,这里记录一下柱状图加载动态数据的实现方式。先上代码import QtQuick 2.0import QtCharts 2.3Item { ChartView { ...原创 2019-11-14 13:39:25 · 2829 阅读 · 0 评论 -
【Qt】剪切图片左上角是直角,其他三个角是圆角
先看效果图直接上代码:QPixmap Widget::round(const QPixmap &img_in, int radius){ if (img_in.isNull()) { return QPixmap(); } QSize size(img_in.size()); QBitmap mask(size); ...原创 2019-10-18 18:12:36 · 555 阅读 · 0 评论 -
Qt 加载base64数据显示图片
项目中有获取到服务器那边发来的base64图片数据在客户端进行显示,取到的数据使用QPixmap::loadFromData(const QByteArray &buf, const char *format, Qt::ImageConversionFlags flags)进行加载死活不行,整了好久最后发现发过来的数据包含了多余的东西data:image/jpeg;base...原创 2019-02-28 19:34:29 · 4225 阅读 · 0 评论 -
【Qt】paintEvent实现动画旋转
项目有写过重连的按钮,会有个旋转动画表示在重连。QTimer配合QPainter绘制出来的,这里记录一下效果如下图,录制的原因,所以看起来有点卡,实际不会这样:头文件:#ifndef CIRCLEWIDGET_H#define CIRCLEWIDGET_H#include <QWidget>class QTimer;class CircleWidget ...原创 2019-01-30 17:08:14 · 2645 阅读 · 1 评论 -
【Qt】实现按钮透明的动画效果
qt里实现动画一般是用QPropertyAnimation,也支持有透明的动画效果,即属性为opacity。该属性是QWindow类及其派生类才有的,QWidget没有,QWidget及其派生类就用不了,故只能使用其他方法来实现了我们这里通过QGraphicsOpacityEffect来设置透明度,使用定时器来控制。效果如下图:下面上代码头文件:#ifndef RECOR...原创 2019-01-30 16:02:44 · 1411 阅读 · 0 评论 -
qt画柱状图
用qt画了个很简单的柱状图,横坐标长度不变,个数越多,每个柱状图的宽度越窄。没什么难度,写过的就记录一下,以后可能用到类似的直接拿来用。头文件#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QMap>class MainWindow : public QMa...原创 2019-01-06 14:53:05 · 8066 阅读 · 3 评论 -
qt vs2015编译报无法运行“rc.exe”错误
把调试器bin目录下的rc.exe和rc.dll拷到编译器的bin目录下我调试器的路径是C:\Program Files (x86)\Windows Kits\8.1\bin\x86编译器的路径是D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin缺少rc.exe可能是装编译器的时候少了什么模块...原创 2018-12-23 13:26:21 · 2075 阅读 · 0 评论 -
QWidget及其重载类获取对应的类名
const QMetaObject *metaObj = m_curWidget->metaObject();QString className = metaObj->className();原创 2018-12-22 12:50:06 · 1090 阅读 · 0 评论