- 博客(159)
- 资源 (21)
- 收藏
- 关注
原创 浏览器插件基于nativeMessaging通信
以上是基于Qt程序实现的通信方法,该例子是在Mac上实现的,Win上没调成功,主要是Win的命令行启动程序不是保持运行状态,启动后就和控制台断开,插件就判定为连接已断开,没法进行通信,目前Win没找到能保持控制台运行的启动命令行。
2024-11-26 20:55:42
678
原创 浏览器插件启动本地程序
插件的id,如果是上架的话,通过浏览器进行打包,会生成一个公钥,如果不上架,需要在代码中指定key,不然不同电脑安装的插件生成的插件id是不同的,其他电脑就没法使用了。Demo的使用流程还是比较清晰明了的,就是执行注册表安装脚本后直接就能用,如果是要添加我们自己的启动程序,需定义自己的host名称,修改插件id,修改启动路径。按以上的流程是能实现程序的启动的,如果要实现通过nativeMessaging通信,有一些关键点要注意,后面基于Qt程序介绍如何实现通信。Host名称,代码调用连接接口用的。
2024-11-21 20:25:17
570
原创 Qt WebEngine基于WebEngineScript注入js脚本
在之前的文章中,我们介绍了Qt WebEngine注入js的用法,及runJavaScript()的用法,该方法主要是用在页面加载完成后,为了和网页做一些交互时使用。有时候需要监听网页加载完成的一些状态或信息,则需要网页加载前注入js来实现。这需要用到我们今天要介绍的内容WebEngineScript。
2024-08-07 20:31:35
664
原创 程序跟随系统主题色切换主题
选择右边的选择颜色下拉框,可以看到有三个选项,浅色和深色就很好理解,选择自定义可以看到会多两个选项,一个是系统的主题色,一个是应用的主题色。选择浅色时,系统主题色和应用主题色都是浅色,选择深色时系统主题色和应用主题色都是深色,自定义用于系统主题色和应用主题色分开设置。系统主题色指的是系统窗口的主题色,比如任务栏,任务栏右键菜单,开始菜单等等,我们以应用的主题色为基准进行变化。Mac系统的主题设置就比较简单明了,Mac的系统多了一项自动,会根据环境切换主题,比如天黑了会自动切换成深色主题。
2024-08-06 20:20:57
1135
原创 Qt WebEngine播放DRM音视频
DRM视频是指数字版权管理(Digital Rights Management)视频,它是通过技术手段对视频内容的使用和传播进行控制和限制的一种方式。通过DRM技术,视频内容提供商可以对视频文件进行加密,限制用户在特定设备上播放或复制视频内容,以保护视频内容的版权和收益。常见的DRM视频包括Netflix和HBO等在线视频平台上的付费内容。比如Spotify、Netflix音视频都是使用DRM技术进行加密,播放时需使用谷歌提供的widevinecdm库进行解密播放。
2024-08-05 20:55:20
631
2
转载 解决QTCreator debug特别慢的问题(输出窗户打印moudule loaded特别慢)
因为文件《default.qws》中包含了断点信息,但是因为其中包含了一系统模块(dll)上的断点,导致每次debug都要先加载包含断点的系统模块(dll)。删除这些断点即可解决问题。debug模式下运行程序,然后点击应用程序输出右上角的"挂接调试器到PID按钮"绿色三角按钮。可以进入C++断点调试界面,但是无法对QML进行断点调试。删除Qtproject目录下的default.qws文件(保险起见可先对文件备份,注意删除文件前需要先关闭QT才能生效)导致效率极低而无法正常使用断点调试。
2024-04-16 17:00:49
1373
原创 QWebEngine应用(一)
很早以前就听说过Qt也能显示网页,一直没有机会真正研究应用起来,刚好最近项目中使用到了QWebEngine内嵌浏览器打开第三方的网站,使用的Qt版本为5.15,踩了不少的坑,这里做个总结。
2023-07-03 21:01:38
1454
原创 Qt图片显示有波纹
这种波纹在计算机图形学叫摩尔纹,这是纹理贴图采样出现走样的现象,纹理分辨率过大时就会出现这种情况,关于这部分计算机图形学相关的知识网上有很多,我不是这方面的专业也讲不明白这些原理哈。了解了其中的原因,一个比较直接的处理方式就是把原图scale为需要显示的分辨率大小是可以解决这个问题。Image也可以使用上面说的scale后再显示,设置sourceSize为显示的大小就是这种效果。在QML中是支持启用Mipmap的,因为QML默认是使用opengl进行渲染,opengl有Mipmap相关算法的支持。
2023-04-06 20:51:35
677
翻译 Qt6.5 LTS发布
Qt6.5于2023.04.03发布,这是Qt6第二个长期维护版本,相对Qt6.2增加了不少东西,稳定性也更高,想从Qt5升级Qt6的话,Qt6.5是一个很好的选择。
2023-04-06 19:57:31
2697
原创 QLibrary动态加载类
本篇文章主要介绍QLibrary加载动态库的基本用法,其中加载C++类的用法Qt文档是没有介绍的,这里介绍其基本的用法
2022-10-06 11:09:50
2771
原创 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
1337
原创 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
4446
1
转载 X11流程解读
前言之前转载了关于Linux图形子系统的文章,其中提到的X11和Wayland,关于X11的实现流程并没有太详细,下面这篇文章会更详细一些,虽然没有包含DRI部分的内容,不过不影响理解。内容Wayland是什么呢?它是X Window?还是要取代X Window?它的优势在哪里?Linux桌面/移动会因此有什么变化?在本篇中,我将回顾历史,展望未来,通过简易的文字,来先回顾一下X Window,从而继续解答Wayland。注:在下对X Window的理解仅限于表面,文章中会有不少技术、历史方
2021-09-16 18:25:44
4614
转载 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
501
转载 Linux graphic subsytem(1)_概述
1. 前言图形子系统是linux系统中比较复杂的子系统之一:对下,它要管理形态各异的、性能各异的显示相关的器件;对上,它要向应用程序提供易用的、友好的、功能强大的图形用户界面(GUI)。因此,它是linux系统中少有的、和用户空间程序(甚至是用户)息息相关的一个子系统。本文是图形子系统分析文章的第一篇,也是提纲挈领的一篇,将会从整体上,对linux显示子系统做一个简单的概述,进而罗列出显示子系统的软件构成,后续的文章将会围绕这些软件一一展开分析。注1:本文所有的描述将以原生linux系统为例(如
2021-09-15 18:40:32
206
转载 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
395
原创 Qt实现X509证书查看工具
之前的的文章介绍了OpenSSL解析X509证书,有了解析的接口,配合Qt实现界面,就实现了简单的证书查看工具项目工程在Github,点击这里其中实现了证书链的获取,这部分内容在解析证书的库中是没有实现的,这里会涉及证书的下载操作,所以用Qt的库会方便一些,关于证书链的实现可参考这篇文章。整体代码不多,就是证书详细信息部分的QTreeView代码会多些,该部分的实现是参考Qt的TreeView例子进行修改,以便有需要的根据最原始的例子进行修改。项目工程通过共享库的方式调用封装好的解析X509
2021-09-13 18:00:36
1006
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
3765
原创 了解X509证书
数字证书具有以下特性:ˉ——任何能够获得和使用认证机构公钥的用户都可以恢复认证机构所认证的公钥。一 除了认证机构,没有其他机构能够更改证书,证书是不可伪造的。由于证书是不可伪造的,所以可以通过将其放置在目录中来发布,而不需要以后特意去保护它们。注:尽管在DIT中使用唯一性名称来明确定义CA,但这并不意味着CA组织和DIT之间有 任何联系。认证机构通过对信息集合的签名来生成用户证书,信息集合包括可辨别的用户名、公钥以及一个可选的包含用户附加信息的唯一性标识符(unique identifier))。
2021-09-11 12:49:38
2302
原创 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
1820
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
5599
23
原创 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
903
原创 从“苏神“奥运神迹到技术35岁问题
职场35岁的坎,相信大家都看得多、见得多了,不过我这里还是要提一提。刚好今天在csdn看到一位大佬入职国企的文章,其中有一个是关于面试时被问到“怎么看待技术35岁的问题?”,大佬先是从当前国内的IT环境现状着手,指出目前是一种堆业务堆应用要远多于底层设计的现状,导致三四年工作经验的开发者性价比极高,企业招收更倾向这批人;还指出一些大龄技术人员“才不配岁”,导致无法胜任新的岗位。大佬的一番话,真是受教了。面对职场大龄问题,不得不提我们的飞人—“苏神”。昨天,中国短跑名将苏炳添在东京奥运100米决赛半决
2021-08-02 23:28:43
281
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
11121
20
SetupLdr.e32
2020-12-11
TestSingleApp.zip
2020-09-27
nsWindow.rar
2019-08-15
winnt.h文件(qt报错)
2019-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人