- 博客(75)
- 资源 (3)
- 收藏
- 关注
原创 【字符编码系列二】GB2312编码
可以发现,0xd76f不属于gb2312的编码范围,第二个字字节6f是小于编码范围中第二个字节的A1的,转换成二进制就是。GB2312编码表有个值得注意的点,这个表中也有一些数字和字母,与ASCII里面的字母非常像。用16进制来表示的话,GB2312的编码范围是0xA1A1-0xFEFE,去掉未定义的区域之后可以理解为实际编码范围是0xA1A1-0xFEFE。这是因为windows下,控制台的中文系统代码页默认是GBK,而GBK中是包含这个字的,所以这个字是可以正常显示在控制台中的。
2023-11-21 14:07:41 604
原创 【字符编码系列一】ASCII编码是什么?
ASCII 编码于 1967 年第一次发布,最后一次更新是在 1986 年,迄今为止共收录了 128 个字符,包含了基本的拉丁字母(英文字母)、阿拉伯数字(也就是 1234567890)、标点符号(,.!等)、特殊符号(@#$%^&等)以及一些具有控制功能的字符(回车空格之类的)。ascii编码共收录了 128 个字符,用一个字节就可以存储,他的首字节是0.后续又更新了扩展ascii,将其扩展到了255个字符,也就是将首字节1也用上了。我们常见得GBK等兼容ascii码都是指的前128个字符。
2023-11-17 17:23:47 336
原创 The selected build of GDB does not support Python scripting. It cannot be used in Qt Creator.
sudo apt install gdb 安装一下gdb就好了。
2023-11-08 16:55:40 203
原创 QTableWidget设置各个item的文本居中、居左、居右,文本边距,整行选中,样式
tablewidget->setSelectionBehavior(QAbstractItemView::SelectRows); //整行选中的方式tablewidget->setEditTriggers(QAbstractItemView::NoEditTriggers);//单元格不可编辑tablewidget->horizontalHeader()->setStretchLastSection(true); //最后一列铺满最后tablewidget->setHorizontalScrollBarP
2023-11-01 17:01:40 3178
原创 QT中文乱码解决方案与乱码的原因
先总结一下:Qt5中,将QString()的构造函数默认调用的是fromUTF8,且Qt Creator的文件编码格式默认为UTF-8。所以如果QT设置的默认为utf8编码,并且cpp文件用的就是Utf8编码,此时在编辑时输入的中文也是utf8编码格式,QString获取字符时,默认使用fromUTF8将其转换为QT需要的Unicode编码,此时显示中文就是正常的了。
2023-10-26 14:55:23 1804
原创 【QT】C++编辑修改PDF文件,C++渲染显示PDF
QT虽然有PDF模块,但是需要5.15以及6之后的版本,并且只支持加载文档进行阅览,不支持修改PDF文件。本篇博客使用QT5,不使用QT的PDF模块,通过两百行代码编写一个支持阅览与任意位置插入图片的PDF编辑器,并且还可以拓展其他功能。
2023-10-24 17:56:20 1238
原创 Linux下QT打开文件选择对话框时,程序报错退出
Gtk:ERROR:../../../../gtk/gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /usr/share/icons/Yaru/16x16/status/image-missing.png: 读入 PNG 图像文件时发生严重错误:Invalid IHDR data (gdk-pixbuf-error-quark, 0)已放弃 (核心已转储)
2023-10-24 15:03:46 678
原创 多屏幕下谷歌浏览器将页面显示到扩展屏指定位置
点击Update Screens,浏览器会询问用户是否允许页面管理窗口![在这里插入图片描述](https://img-blog.csdnimg.cn/cbf894db676145d8b5dc62119c6ca6d3.png)[在这里插入图片描述](https://img-blog.csdnimg.cn/d8eaa64257d44a52915143fa4d9219e6.png)允许后,再次点击Update Screens,枚举出了所有的屏幕,此时就可以将窗口显示到任意屏幕了。前置要求:页面为可信任页面。
2023-10-24 10:50:07 552
原创 【QT】Linux x86交叉编译arm64QT5.12
输入 sudo make install,报错未找到python,qtqml编译需要python,配置的时候应该可以跳过qml?解压下载的交叉编译工具链gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz。配置说明:https://doc.qt.io/qt-5/configure-options.html。这里指定当前目录的qtbase目录下作为编译生成目录 xplatform指定交叉编译工具链。刚刚编译的aarch64版本的qt设置。
2023-07-21 12:13:53 569
原创 记一次Windows鼠标和键盘无法使用的情况下,如何恢复系统正常使用
最后我找了一个Win10的安装盘(U盘),插在电脑上启动时进入了bios,再选择启动U盘但不安装系统而是选择恢复,终于进入了Win11的启动设置,然后选择了还原之前的备份点。但先不说我没有那种鼠标,其次我这电脑也没法接呀,就算用USB转,关键我现在USB在系统里也不能用呀。我想用鼠标键盘,那么我就需要恢复被我禁用的USB3.0集线器,但是我想恢复USB3.0集线器,那我就需要鼠标或键盘来控制。难道没有一个是USB3.2?但是现在又有一个问题,我鼠标和键盘不能用了,那我该如何回复被我禁用的USB3.0呢?
2023-06-09 18:28:41 494
原创 【QT】输入法软件常用功能,Windows窗口启动不占用焦点
此时可以通过windowsAPI来设置 HWND wid = (HWND)(this->winId());但是如果还有其他设置,比如窗口置顶,设置无边框无标题栏,窗口透明等,这种设置就会失效。使用该接口需要#include 在QT中,诸如一下设置都可以使得程序启动时不占用焦点。另: // 窗口置顶接口。
2023-03-24 11:17:55 513 1
原创 imoport什么时候使用花括号{}? Vue警告:export ‘axios‘ (imported as ‘axios‘) was not found in ‘axios‘
页面运行时报错Uncaught TypeError: (0 , axios__WEBPACK_IMPORTED_MODULE_0__.axios) is not a function。原因:使用了import {axios} from 'axios’引入axios模块,改为import axios from 'axios’后正常。通过export方式导出,在导入时要加{ },export default则不需要。带花括号使用,未将模块全部导入,使用时没有找到axios方法。
2022-12-29 16:30:02 822 1
原创 谷歌新版本跨域错误深度剖析与解决:request client is not a secure context and the resource is in more-private address
request client is not a secure context and the resource is in more-private address解决方案preflight预检请求options请求解决方案详细分析谷歌专用网络错误导致的跨域问题的原因以及给出相关解决方案
2022-12-09 16:23:58 18682 5
原创 【QT】Qt调用OCX控件详解
他可以在COM组件的数据类型和QT对应的数据类型之间进行转换,有些COM的类型没有等价的Qt数据结构。如果想要嵌入到自己的窗口里,可以在自己的窗口里创建一个布局,然后将QAxWidget添加入布局。在使用时,需要知道控件的头文件,同时需要通过数据类型对照表将对应的类型转换到Qt的类型。通过示例可以看到,使用控件的CLSID示例化一个QAxObject对象就可以加载这个控件。ocx注册实际上是将控件注册到了注册表里,可以在注册表里查询到控件的信息。注册后,我们可以使用QT相关类通过控件的uuid来进行调用。.
2022-09-01 10:55:42 2795 1
原创 WebSocket详解:前端js客户端与C++使用mongoose.cpp创建服务端通信示例
一、WebSocket概述1.1 诞生背景早期的时候,网站与服务器进行通信与信息获取大都采用轮询方式。只有网站发起请求,服务器才能给与响应。服务器不能主动发起消息。通过HTTP请求来轮询获取信息的这种形式叫做半双工通信,在获取静态资源时还可以,但是当获取动态信息时,客户端需要不断地轮询以获取结果。比如客户端发起一个请求:“请服务器做一件事”,并且客户端需要知道服务器这件事做完了,客户端才能按顺序去做下一件事。于是客户端需要不停的询问服务端:Client:“你弄完了吗?”,Server:“没呢!”。
2022-05-13 17:26:15 1503
原创 统信Linux系统QT安装QWebengine及程序打包发布
本次打包的QT主程序为QWebEngine模块编写的浏览器1.安装qt在qt官网或者镜像网站下载qt安装程序。https://download.qt.io/比如我的电脑是x86_64的,系统是linux,所以下载实际上由于我的电脑可以上网,并且源中就有qt,所以执行命令sudo apt -y updatesudo apt -y install qtcreator qt5-default qtdeclarative5-dev build-essential g++ cmake然...
2022-04-25 16:41:56 3596 2
原创 【Windows进程通信】共享内存
共享内存主要是通过映射机制实现的。 Windows 下进程的地址空间在逻辑上是相互隔离的,但在物理上却是重叠的。所谓的重叠是指同一块内存区域可能被多个进程同时使用。系统把同一块内存区域映射到了不同进程的地址空间中,从而达到共享内存的目的。 示例代码中,一方是QT编写的程序来创建并读取共享内存的内容,另一方是VC程序修改共享内存中的内容: QT:#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDebug>#
2022-04-14 12:19:01 1374 1
原创 Linux下QT程序打包使用linuxdeployqt提示glibc版本过高
在https://github.com/probonopd/linuxdeployqt/releases 下载的最新的linuxdeployqt工具运行时提示glibc版本过高。看了看要求strverscmp (glcv, “2.28”) < 0,也就是不能超过2.27,而我的系统里的libc的文件是libc.so.6打开linuxdeployqt源码看了一下,发现运行时传个-unsupported-allow-new-glibc就可以了执行linuxdeployqt app -appimage
2022-04-08 18:26:58 1106
原创 QtWebEngine Widget各部分详述
QtWebEngine一、架构1.1 模块Qt WebEngine中的功能分为以下模块:模块功能Qt WebEngine Widgets C++ Classes提供用于在基于 QWidget 的应用程序中呈现 Web 内容的C++类。Qt WebEngine QML Types提供 QML 类型,用于在 QML 应用程序中呈现 Web 内容。Qt WebEngine Widgets C++ Classes提供用于在基于 QWidget 的应用程序中呈现 Web
2022-04-06 11:18:51 5845
原创 Linux动态库的动态加载与静态加载以及加载依赖了其他动态库的动态库
Linux动态库加载在Linux下,动态库格式一般为libxxx.so者libxxx.so.3这种格式。通常我们在网上下载下来源码包,编译之后会是libxxx.so软连接libxxx.so.1链接libxxx.so.1.23这种形式。.so后面分别大版本和小版本含义。在加载动态库时一般有静态和动态两种加载方式:1.静态加载(隐式加载):在链接时将其链接进目标文件。链接分两种:指明具体库文件径,如“/home/test/libxxx.so”,在链接时就会自动链接该文件。使用系统路径,如"/li
2022-03-18 16:27:39 3411
原创 【Linux】QtCreator找不到包含文件,代码乱报错但能编译使用
QtCreator上方提示错误the code model could not parse an included file,which might lead to incorrect code completion and highlighting,for example代码中各种乱报错点帮助->关于插件,找到C++下的ClangCodeModel,将后面的√去掉,重启QtCreator就好了Windows下有这个错误好像可以通过删除C:\Users\用户名\AppData\Roaming
2022-03-14 17:03:27 3198 2
原创 统信DTK安装
DTKdevelopment tool kit(DTK)是统信推出的一个基于QT5的开发套件,可以使用它开发出更适配统信系统的应用程序。并且与QT结合的很好,可以很轻松的配置使用。安装目标版本:统信专业版 21首先打开终端,输入sudo apt -y update更新一下接着输入sudo apt -y install qtcreator qt5-default qtdeclarative5-dev build-essntial g++ cmake将相关环境和IDE安装上输入sudo
2022-03-14 10:47:04 2331 2
原创 MFC窗口程序调用带界面的MFCdll,创建不阻塞主界面的“模态”窗口
一:创建MFCdll新建一个MFC DLL项目点击完成自动生成相关文件在test.cpp中,实现被调用的接口在test.def中,填写接口名; test.def : 声明 DLL 的模块参数。LIBRARY “test”EXPORTS; 此处可以是显式导出在资源视图里,右键工程添加资源选择Dialog,新建在新建的Dialog上右键,选择添加类输入要创建的类名,选择基类为CDialog,点击完成生成了与Dialog绑定的类,可以在test.cpp中调用
2022-03-08 17:10:06 1709
原创 保姆级Linux系统安装并使用libpng攻略
一、libpng库libpng是一款C语言编写的比较底层的读写PNG文件的跨平台的库。由于依赖于zlib库,所以在安装libpng时往往还需要安装zlib库。二、库版本的选择与下载我下载的地址是https://jaist.dl.sourceforge.net/project/libpng/下载的版本为:libpng-1.6.37zlib-1.2.11这两个版本我实测是可以使用的。为什么要注意版本呢?因为某些较早版本的zlib库和现在的zlib库有的接口不一样,而对应的libpng库也有所不同
2022-02-21 16:09:26 6385 1
原创 Vmware虚拟机Ubuntu20无法上网
看了下网上,又是netrestart重启Ubuntu网络服务,又要配置Vm网络又要配置ubuntu网络,感觉挺繁琐的,还不一定好使。我得情况:主机上网正常,ubuntu不能上网甚至右上角没有网络图标。重启ubuntu服务还提示:Failed to restart network.service: Unit network.service not found。这个提示估计Vmware的网络设置就没设置好。处理方式点虚拟机的编辑,点击虚拟网络编辑器。这里可能需要点更改设置提高下权限,如图。更改成管理
2022-02-18 10:56:03 2511 1
原创 Chrome98和Chrome101的跨域变化,httpOPTIONS预检请求,私有网络访问限制
Chrome 浏览器将在任何子资源的私人网络请求之前开始发送 CORS 预检请求,该请求要求目标服务器给予明确许可。这个预检请求将携带一个新的头,即 Access-Control-Request-Private-Network: true,而对它的响应必须携带一个相应的头,即 Access-Control-Allow-Private-Network: true。在 Chrome 98 中。● Chrome会在私有网络子资源请求之前发送预检请求。● 预检失败只在DevTools中显示警告,不影响私人网
2022-02-15 10:32:01 2831
原创 Windows11在Edge浏览器中打开IE浏览器兼容的页面,在Edge浏览器打开加载ActiveX控件的页面
打开Edge浏览器,点击右上角三个小点···,在弹出的列表中点击设置,进入设置界面。进入设置界面后,点击默认浏览器,如下图进行设置可以在图中添加按钮处,单击后输入要默认IE模式打开的页面网址,然后用Edge浏览器打开该页面时会自动以IE模式打开,该页面会默认一个月内都以IE模式打开。设置完后,在需要调整为IE模式的页面下,点击右上角的三个点,在弹出的菜单中可以看到多除了一个“在Internet Explorer模式下重新加载”,点击后本页面便会重新以IE模式加载。...
2022-02-11 15:39:20 20029 3
原创 C++元组
enum class Value{ SignPicture=0, Evaluate=1, IDCard=2};class TabletWidget {public: auto GetValue(Value i);};auto TabletWidget::GetValue(Value i){ std::string strMsg = "no Message"; std::string returnStr = "Sorry"; int ret
2022-01-26 11:38:54 603
原创 【Qt】一个简单的C++单例模式示例
单例类Test#pragma once#include <qwidget.h>class Test : public QWidget{public: static Test& instance() { static Test test; return test; } void set(int a, int b) { c = a; d = b; } vo
2022-01-26 11:25:39 585
原创 【C++】Qt文件自动提取拷贝。QT获得appdata下的文件路径,配置文件读取
总是让客户去APPDATA下找日志,有的人不知道在哪,找半天也找不到。所以写了个日志文件自动提取的小程序。#include <QtCore/QCoreApplication>#include <QStandardPaths>#include <QFile>#include <QSettings>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); //获得
2022-01-26 11:15:58 1713
原创 开机自启服务程序重启或关机开机后异常
自己写的服务,每次关机后再开机之后都会有异常,要么不运行了,要么功能不响应了。最后发现是因为Windows10默认开启了快速启动,关机时将服务的状态保存了文件,开机启动后服务并不会真正意义的重新启动。关闭快速启动:打开控制面板,选择硬件和声音。选择电源选项的更改电源按钮的功能。查看快速启动是否开启。若为开启,选择更改当前不可用的设置然后就可以关闭快速启动,保存修改。...
2022-01-17 17:35:39 680
原创 HTML乱码处理
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>在页面的与结束符之间添加以上代码,将本页面设置为utf-8格式。浏览器打开时就会以Utf-8的编码格式打开。但是如果是本地页面,编辑时本身不是utf-8编码编写的,需要使用vscode或者Notepad++等编辑器打开,转成utf-8无bom格式。Tips:Utf-8的BOMUCS规范建议在传
2022-01-17 17:25:21 195
原创 Vue项目部署
由于各种工程已经封装好可以直接拿来用,有的人以为页面是直接部署在Vue上。而实际上Vue只是个js前端框架,是运行在浏览器里的,并不是服务器,实际部署还是需要后端服务。Vue部署:实际上部署还是在各种服务器上各种Web服务器vue-clinode.jsspring boot常见Web服务器 Apach、Nginx、Tomcat、IIS、IBM WebSphere、Lighttpd2.Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。vue-cli这个构
2022-01-17 17:11:38 2372
原创 如何在VS2013,VS2017,VS2019,QT高版本中使用QtWebKit(无需编译直接使用)
QtWebKit只在早期的QT模块中存在,现在QT已经改用了QWebEngine。废话少说,如何在高版本qt,vs编辑器中使用QWebKit?首先,在已经下载好qt与vs的情况下,下载自己vs版本对应的qt编译器。https://download.qt.io/archive/vsaddin/如果下载的是exe,双击安装。如果下载的是“.vsix”文件,则要通过命令行安装,找到VS安装目录下的VSIXInstaller.exe所在目录在此目录的地址栏输入cmd.exe回车,或者cmd命令窗口切换
2021-11-29 09:57:07 803 1
原创 【Qt进程通信】Linux下通过使用QtDBus进行进程通信,通过QtDus调用其他进程中的方法
通过QtDBus,可以将Qt的信号槽机制上升到不同进程之间通信。使用系统:银河麒麟Qt版本:4.6.1网上教程说,qmake编译需要将QT+= qDbus添加到pro工程里添加后提示找不到该模块,在包含头文件后使用函数时报了找不到定义的编译错误。经过一下午的排查尝试,最后发现在pro工程里添加QT += dbus便能正确的将模块加载进来了。示例程序:本程序中服务端运行后弹出窗口,此时运行发送端将关闭服务端弹出的窗口。调用端:widget.h#ifndef WIDGET_H#def
2021-06-04 18:16:04 1335
原创 【C++】【读个小故事就弄懂】为什么基类指针可以指向派生类对象,而派生类指针却不可以指向基类对象?(最易懂最有趣最生动的举例)
在内存中,一个基类类型的指针是覆盖N个单位长度的内存空间。当其指向派生类的时候,由于派生类元素在内存中堆放是:前N个是基类的元素,N之后的是派生类的元素。于是基类的指针就可以访问到基类也有的元素了,但是此时无法访问到派生类(就是N之后)的元素。我们来举一个例子:我们需要给一个人打电话,这时候我们有很多种选择,可以用功能丰富多彩的智能手机;可以用小灵通;可以用办公桌上的座机;如果能打的话,甚至我们可以用大哥大。因为我们使用的功能是电话共有的基础功能——打电话,电话是一个基类,打电话是他所具有的函数,座
2021-03-18 13:43:36 764 1
转载 【测试】黑盒测试
黑盒测试定义功能主要内容测试方法划分等价类边界值分析法错误推测法因果图法判定表组成法正交试验设计场景法流程测试计划测试设计测试开发测试执行测试评估优缺点定义黑盒测试,顾名思义及将程序看作一个密不透风的黑盒子,不考虑程序结构和内容,只单纯从使用,输入输出来测试程序。功能黑盒测试方法着重测试软件的功能需求,是在程序接口上进行的测试,主要是为了发现以下错误。(1)是否有功能错误,是否有功能遗漏。(2)是否能够正确地接收输入数据并产生正确的输出结果。(3)是否有数据结构错误或外部信息访问错误。(4)
2021-03-18 11:15:38 444
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人