自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

芒果黑的博客

学习的最高境界就是教别人

  • 博客(155)
  • 资源 (21)
  • 收藏
  • 关注

原创 Qt WebEngine基于WebEngineScript注入js脚本

在之前的文章中,我们介绍了Qt WebEngine注入js的用法,及runJavaScript()的用法,该方法主要是用在页面加载完成后,为了和网页做一些交互时使用。有时候需要监听网页加载完成的一些状态或信息,则需要网页加载前注入js来实现。这需要用到我们今天要介绍的内容WebEngineScript。

2024-08-07 20:31:35 431

原创 程序跟随系统主题色切换主题

选择右边的选择颜色下拉框,可以看到有三个选项,浅色和深色就很好理解,选择自定义可以看到会多两个选项,一个是系统的主题色,一个是应用的主题色。选择浅色时,系统主题色和应用主题色都是浅色,选择深色时系统主题色和应用主题色都是深色,自定义用于系统主题色和应用主题色分开设置。系统主题色指的是系统窗口的主题色,比如任务栏,任务栏右键菜单,开始菜单等等,我们以应用的主题色为基准进行变化。Mac系统的主题设置就比较简单明了,Mac的系统多了一项自动,会根据环境切换主题,比如天黑了会自动切换成深色主题。

2024-08-06 20:20:57 480

原创 Qt WebEngine播放DRM音视频

DRM视频是指数字版权管理(Digital Rights Management)视频,它是通过技术手段对视频内容的使用和传播进行控制和限制的一种方式。通过DRM技术,视频内容提供商可以对视频文件进行加密,限制用户在特定设备上播放或复制视频内容,以保护视频内容的版权和收益。常见的DRM视频包括Netflix和HBO等在线视频平台上的付费内容。比如Spotify、Netflix音视频都是使用DRM技术进行加密,播放时需使用谷歌提供的widevinecdm库进行解密播放。

2024-08-05 20:55:20 386

转载 解决QTCreator debug特别慢的问题(输出窗户打印moudule loaded特别慢)

因为文件《default.qws》中包含了断点信息,但是因为其中包含了一系统模块(dll)上的断点,导致每次debug都要先加载包含断点的系统模块(dll)。删除这些断点即可解决问题。debug模式下运行程序,然后点击应用程序输出右上角的"挂接调试器到PID按钮"绿色三角按钮。可以进入C++断点调试界面,但是无法对QML进行断点调试。删除Qtproject目录下的default.qws文件(保险起见可先对文件备份,注意删除文件前需要先关闭QT才能生效)导致效率极低而无法正常使用断点调试。

2024-04-16 17:00:49 687

原创 基于QWebEngine实现无头浏览器

基于QWebEgine实现无头浏览器

2023-09-04 19:59:51 1475

原创 QWebEngine应用---基于QWebChannel实现网页与qt层交互

基于QWebChannel实现网页与qt层交互

2023-07-10 20:32:50 3056 2

原创 QWebEngine应用---执行javascript

WebEngine执行javascript,修改页面的显示和交互

2023-07-05 20:48:14 1023

原创 QWebEngine应用---cookies存储及自动登录

QWebEngine实现cookies存储及自动登录

2023-07-04 20:53:20 1953

原创 QWebEngine应用(一)

很早以前就听说过Qt也能显示网页,一直没有机会真正研究应用起来,刚好最近项目中使用到了QWebEngine内嵌浏览器打开第三方的网站,使用的Qt版本为5.15,踩了不少的坑,这里做个总结。

2023-07-03 21:01:38 1178

原创 Qt图片显示有波纹

这种波纹在计算机图形学叫摩尔纹,这是纹理贴图采样出现走样的现象,纹理分辨率过大时就会出现这种情况,关于这部分计算机图形学相关的知识网上有很多,我不是这方面的专业也讲不明白这些原理哈。了解了其中的原因,一个比较直接的处理方式就是把原图scale为需要显示的分辨率大小是可以解决这个问题。Image也可以使用上面说的scale后再显示,设置sourceSize为显示的大小就是这种效果。在QML中是支持启用Mipmap的,因为QML默认是使用opengl进行渲染,opengl有Mipmap相关算法的支持。

2023-04-06 20:51:35 531 1

翻译 Qt6.5 LTS发布

Qt6.5于2023.04.03发布,这是Qt6第二个长期维护版本,相对Qt6.2增加了不少东西,稳定性也更高,想从Qt5升级Qt6的话,Qt6.5是一个很好的选择。

2023-04-06 19:57:31 2322

原创 Qt Mac阻止和启用休眠

Qt Mac实现阻止系统休眠

2023-01-06 20:38:54 1018

原创 Win右键打开方式启动

在win程序中,某种类型的文件可以有多种打开方式,如媒体文件支持多种播放器打开右键打开方式的实现是通过写注册表实现的

2022-10-06 15:45:13 939

原创 QLibrary动态加载类

本篇文章主要介绍QLibrary加载动态库的基本用法,其中加载C++类的用法Qt文档是没有介绍的,这里介绍其基本的用法

2022-10-06 11:09:50 2518

原创 QML包管理

qml包管理

2022-07-31 13:34:44 586

原创 QML类型系统

QML类型

2022-07-17 17:20:06 761

原创 C++与QML交互(一)

C++与QML交互介绍

2022-07-16 13:11:27 899

原创 Qt属性系统及其用法

Qt属性的运用

2022-07-03 13:29:34 2513

翻译 给学术难民的建议

职场建议

2022-06-25 19:57:26 225

原创 QML使用C++model(撤销恢复)

model/view撤销恢复

2022-06-25 19:22:26 871

原创 QML使用C++model(排序/搜索)

C++model排序搜索

2022-06-25 11:29:29 1339

原创 QML使用C++ model(基本用法)

C++model与QML

2022-06-22 21:55:41 3849

原创 Qt Mac添加菜单

Mac下的菜单通常的显示在顶部,其中菜单混合有系统相关的菜单选项,下面介绍下Qt Mac添加菜单的方式添加菜单直接上代码:#include "mainwindow.h"#include "ui_mainwindow.h"#include <QMenuBar>#include <QDebug>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::Mai

2022-03-04 19:48:24 1187

原创 Qt获取OpenGL版本

C++:第一种方式:#include "mainwindow.h"#include <QApplication>#include <QOffscreenSurface>#include <QOpenGLContext>#include <QOpenGLFunctions>#include <QDebug>int main(int argc, char *argv[]){ QApplication a(argc,

2022-02-19 15:37:22 3866 1

转载 X11流程解读

前言之前转载了关于Linux图形子系统的文章,其中提到的X11和Wayland,关于X11的实现流程并没有太详细,下面这篇文章会更详细一些,虽然没有包含DRI部分的内容,不过不影响理解。内容Wayland是什么呢?它是X Window?还是要取代X Window?它的优势在哪里?Linux桌面/移动会因此有什么变化?在本篇中,我将回顾历史,展望未来,通过简易的文字,来先回顾一下X Window,从而继续解答Wayland。注:在下对X Window的理解仅限于表面,文章中会有不少技术、历史方

2021-09-16 18:25:44 4308

转载 Linux graphic subsystem(2)_DRI介绍

1. 前言上篇文章(Linux graphic subsytem(1)_概述)介绍了linux图形子系统基本的软件框架,以及GUI、Windowing system、3D渲染等基本概念。文中提到了linux DRI(Direct Render Infrastructure)框架,但限于篇幅,没有过多介绍。蜗蜗觉得,DRI在当前(或者说将来)的linux图形子系统中,有着举足轻重的地位,甚至可以说是新的linux图形框架核心思想的体现。本文将基于linux图形框架的发展历程,从Why、What和How

2021-09-15 18:42:13 418

转载 Linux graphic subsytem(1)_概述

1. 前言图形子系统是linux系统中比较复杂的子系统之一:对下,它要管理形态各异的、性能各异的显示相关的器件;对上,它要向应用程序提供易用的、友好的、功能强大的图形用户界面(GUI)。因此,它是linux系统中少有的、和用户空间程序(甚至是用户)息息相关的一个子系统。本文是图形子系统分析文章的第一篇,也是提纲挈领的一篇,将会从整体上,对linux显示子系统做一个简单的概述,进而罗列出显示子系统的软件构成,后续的文章将会围绕这些软件一一展开分析。注1:本文所有的描述将以原生linux系统为例(如

2021-09-15 18:40:32 182

转载 Linux内核的整体架构

1. 前言本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统。之后,会介绍Linux内核源文件的目录结构,并和各个软件子系统对应。注:本文和其它的“Linux内核分析”文章都基于如下约定:a) 内核版本为Linux 3.10.29(该版本是一个long term的版本,会被Linux社区持续维护至少2年),可以从下面的链接获取:https://www.kernel.org/pub/linux/kernel/v3.x.

2021-09-15 18:35:25 363

原创 Qt实现X509证书查看工具

之前的的文章介绍了OpenSSL解析X509证书,有了解析的接口,配合Qt实现界面,就实现了简单的证书查看工具项目工程在Github,点击这里其中实现了证书链的获取,这部分内容在解析证书的库中是没有实现的,这里会涉及证书的下载操作,所以用Qt的库会方便一些,关于证书链的实现可参考这篇文章。整体代码不多,就是证书详细信息部分的QTreeView代码会多些,该部分的实现是参考Qt的TreeView例子进行修改,以便有需要的根据最原始的例子进行修改。项目工程通过共享库的方式调用封装好的解析X509

2021-09-13 18:00:36 923 1

原创 OpenSSL解析X509证书

前言网上搜索出来的OpenSSL解析证书很多都是命令行工具的操作,还有一些C++实现的,用的版本的比较老,很多接口都变了。整理了基于OpenSSL1.11版本解析X509证书的实现。接口参照QSslCertificate接口,基于标准C++实现类似的接口,不依赖Qt,支持RSA和SM2证书信息解析,解析PFX、P7B证书、解析证书链、验证书等具体接口如下:#ifndef X509CERTIFICATE_H#define X509CERTIFICATE_H#include <

2021-09-12 11:27:15 3531

原创 了解X509证书

数字证书具有以下特性:ˉ——任何能够获得和使用认证机构公钥的用户都可以恢复认证机构所认证的公钥。一 除了认证机构,没有其他机构能够更改证书,证书是不可伪造的。由于证书是不可伪造的,所以可以通过将其放置在目录中来发布,而不需要以后特意去保护它们。注:尽管在DIT中使用唯一性名称来明确定义CA,但这并不意味着CA组织和DIT之间有 任何联系。认证机构通过对信息集合的签名来生成用户证书,信息集合包括可辨别的用户名、公钥以及一个可选的包含用户附加信息的唯一性标识符(unique identifier))。

2021-09-11 12:49:38 2085

原创 Qt报错cast from ‘QTJSC::JSCell*’ to ‘int32_t’ {aka ‘int’} loses precision [-fpermissive]

Qt编译报错cast from ‘QTJSC::JSCell*’ to ‘int32_t’ {aka ‘int’} loses precision [-fpermissive] u.asBits.payload = reinterpret_cast<int32_t>(ptr);网上搜了一下,大概的原因是QTJSC::JSCell*转成int32_t会丢失精度,64位Linux机器上的指针占8个字节,而int占4个字节,所以会报这个错提示报错的位置qtscript/src/3r

2021-09-10 18:10:21 1582 2

原创 龙芯5000编译Qt环境报错

问题之前项目的Qt应用需要适配龙芯4000,龙芯4000使用的是mips架构,Qt环境的搭建基本上很顺利完成。但龙芯5000不是基于mips架构,是全新的指令集,据说效率相比mips提升了不少。全新的指令集,那意味着要重新编译Qt环境,按往常的编译步骤进行操作,然后就出问题了报错如下error: #error Target architecture was not detected as supported by Double-Conversion.字面意思大概是当前的系统架构不支持Dou

2021-09-10 17:52:19 5051 21

原创 OpenLDAP源码安装

之前在linux上安装是是系统源上提供的包直接安装,如Centos上的rpm包,前不久RedHat宣布Centos将在2021年底停止维护,Centos7也只维护到2024年,所以现在公司新装的服务器改用了ubuntu的系统,之前用OpenLDAP系统源安装的方式就不通用了,所以采用源码的方式进行安装,这样后面会系统差别也不会很大。下面介绍Ubuntu下使用源码的方式安装OpenLDAP安装BerkeleyDBOpenldap依赖BerkeleyDB,要求用Oracle Berkeley 4.4-4

2021-09-03 09:03:34 797

原创 从“苏神“奥运神迹到技术35岁问题

职场35岁的坎,相信大家都看得多、见得多了,不过我这里还是要提一提。刚好今天在csdn看到一位大佬入职国企的文章,其中有一个是关于面试时被问到“怎么看待技术35岁的问题?”,大佬先是从当前国内的IT环境现状着手,指出目前是一种堆业务堆应用要远多于底层设计的现状,导致三四年工作经验的开发者性价比极高,企业招收更倾向这批人;还指出一些大龄技术人员“才不配岁”,导致无法胜任新的岗位。大佬的一番话,真是受教了。面对职场大龄问题,不得不提我们的飞人—“苏神”。昨天,中国短跑名将苏炳添在东京奥运100米决赛半决

2021-08-02 23:28:43 247 1

原创 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 10645 20

原创 Qt机制——隐式共享

何为隐式共享?引用官方文档的解释共享类由指向共享数据块的指针组成,该指针包含引用计数和数据创建共享对象时,它将引用计数设置为 1。每当新对象引用共享数据时,引用计数就会增加,当对象取消引用共享数据时,引用计数会减少。 当引用计数为零时,共享数据被删除在处理共享对象时,有两种复制对象的方法。深拷贝--复制新的对象 浅拷贝--引用拷贝,即只是一个指向共享数据块的指针就内存和 CPU 而言,进行深度复制可能会很昂贵。 进行浅拷贝非常快,因为它只涉及设置指针和增加引用计数。隐式共享对象的

2021-07-20 19:15:50 1672 1

原创 SSL v2.0检测

SSLv2早就被证实是存在漏洞不安全的,当前的浏览器都不支持SSLv2站点的访问。通过对站点SSLv2协议的检测来判断该站点是否是安全的,在新版的openssl中ssl握手协议中也移除了SSLv2部分的内容,如果有用openssl来实现ssl v2的检测,只能用老版本。或者通过其他库来实现。查找了c/c++ ssl相关的库,如mbedtls、wolfSSL发现都不支持SSLv2的检测,其中mbedtls老版本是server端支持v2检测,client端不支持。通过网上查找,找到python的库是可以支持的,

2021-07-16 18:57:58 1265

原创 【Go】解析X509

解析DER证书 //读der证书 derTmp, err := ioutil.ReadFile("123.cer") if err != nil { fmt.Println("Read file failed") return } //调用x509的接口 certBodyTmp, err := x509.ParseCertificate(derTmp) if err != nil { fmt.Println(err) return }解析PEM证书

2021-07-15 19:20:50 2454 1

原创 报错relocation R_X86_64_32 against `.rodata.str1.8‘ can not be used when making a shared object;

Linux下Qt调用库报错relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with –fPIC项目中调用同事的库编译c语言的的共享库报这个错这个库其他项目通过main函数调用的方式是没问题的但在生成共享库的工程调用中会报错该库编译时没有使用–fPIC编译-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Inde

2021-07-06 13:34:42 2548 1

Qt Mac系统菜单翻译的ts文件

Qt Mac系统菜单翻译的ts文件

2022-03-04

app.sh 执行程序脚本

app要对应启动程序名称,原理同export LD_LIBRARY_PATH 程序依赖库目录,程序会依赖指定目录下的依赖库进行启动

2021-09-22

copylib.sh生成依赖

linux下打包程序依赖脚本,根据ldd命令查看依赖,并把所有的依赖拷贝出来

2021-09-22

go切换编译环境.zip

windows下切换linux编译环境的脚本

2021-08-27

sslv2check2.zip

go调用sslyze检测ssl v2.0

2021-07-16

QtDownloadChain.7z

Qt下载证书链并验证的demo,详情请看博客介绍

2021-05-14

MyAnimation.zip

Qt自定义动画路径,相关介绍见博客

2021-05-09

Qt-Static.zip

Qt5.12.9 + msvc2017静态编译版本

2021-04-29

QSqliteTest.zip

Qt操作sqlite数据库的分页实现,主要以ID为主键,数据按ID顺序导入,用sql语句BETWEEN AND获取范围实现分页

2021-02-25

3DImageTest.zip

Qt简易实现图片立体旋转效果的demo,相关说明可看博客介绍

2021-02-24

ChineseSimplified.isl

Inno Setup简体中文语言包。新安装的Inno Setup没有简体中文包,需另外添加

2020-12-16

SetupLdr.e32

反编译Inno setup的文件,实现打包后的程序具有管理员权限,具体操作步骤可看我的博客,这个是已经编译好的Inno Setup6的,需要inno setup5的可自行操作

2020-12-11

TestSingleApp.zip

Qt Creator源码中的单例应用模块qtsingleapplication,基于共享内存实现单个应用程序运行,支持windows和linux,下载即可使用

2020-09-27

ISTask.dll

Inno setup打包检测进程存在和关闭进程所需的dll,与应用程序放在同一级目录,具体得写法看我的博客

2020-09-16

SwitchButton.zip

基于QWidget实现的开关控件,已封装好能直接用,可以自定义添加颜色和文字,实现很简单,具体效果看博客

2020-08-26

AnimalTest1.zip

qt动画的例子,包含QPropertyAnimation的基本使用及惯性效果的使用,具体可看我的博客

2020-07-12

QtChartTest.zip

QtChart实现折线图和柱状图,使用c++进行数据交互。环境为qt5.12.3vs2017。具体解析可看我的博客

2019-11-13

nsWindow.rar

nsis打包窗口设置插件,用到缺少nsWindows.nsh的报错,把nsWindows.nsh放到nsis安装目录下的Include文件夹下,把nsWindows.dll放到nsis安装目录下的Plugins文件夹下,就可以使用这个插件相关的内容

2019-08-15

winnt.h文件(qt报错)

qt vs编译报错error C2146: syntax error : missing ';' before identifier 'PVOID64',替换C:\Program Files (x86)\Windows Kits\8.1\Include\um中的winnt.h文件即可

2019-01-09

qt QLineEdit和QTextEdit翻译对应的ts文件

qt里的QLineEdit和QTextEdit翻译,用的时候需要多加载一份qm文件,具体怎么用百度哈

2019-01-07

qt获取设备名称并利用ffmpeg执行外部命令行实现录屏和录制摄像头

使用qt编写的录屏和录制摄像头,实现原理是执行ffmpeg命令行来实现,具体可以看我的博客

2018-05-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除