20230518-1

pyQt 用 QThread 调用算法,解决界面卡顿

image-20230518232910966

20230518-2

Qt+mitk 在 QGraphicsView 打开 DICOM 格式图片,就是在 QWidget 里嵌入别的进程的窗体

20230518-3

image-20230518234811161

解决无法运行,选择编译工具链,通过 Qt6.5 + mingw64

20230518-4

image-20230518235423142

QThread + moveToThread,异步编程的思想

20230518-5

qrc 文件路径不要带中文

20230518-6

qwt 6.2 集成了 qwt_polar 解决编译问题,5.15.2 + MinGW64

image-20230519002108917

20230518-7

image-20230519002552267

牌九-顶牛子,解决坐标计算问题,计算 QWidget,即每张牌 的 pos

20230518-8

配置 mysql

20230518-9

把 AmazonAI 集成到 Qt 界面,亚马逊棋

image-20230519004120899

20230518-10

pyQt + QtMultimedia 把 QGraphicsEllipseItem 放在视频上方

image-20230519004435058

20230519-1

基于 Qt 的 camera 例子改的,实现采图和传输,network multimedia multimediawidgets

飞凌嵌入式 OK5718 板子用的 Qt 5.6 for arm-gcc + ubuntu14.04,太老了

20230519-2

讲解 Qt Widget 的布局和 drag and drop、QListWidget、QPropertyAnimation

20230520-1

使用 TEMPLATE = subdirs 和 SUBDIRS 把多个工程像 Qt 那样管理起来

20230520-2

CMakeList.txt 可以通过 file(GLOB SRC . *.cpp) 添加所有 cpp 文件

20230520-3

20230520-4

拼接和解析图像

20230520-5

字符编码问题,QString 里带中文,用了 GBK,全部用 QtCreator 修改为 utf-8

20230520-6

pyQt 一个 py 里的窗口调用另一个 py 里的窗口

20230520-7

OCR 识别数字,python 改 C++

20230520-8

QComboBox 定制化

20230521-1

海康手机检测门 SDK 调用

20230521-2

pyqt + VTK

20230521-3

基于LIRE搭建的图像检索 cpp client + java server

20230521-4

QOpenGLWidget 让渲染更平滑,主要是

image-20230527204029870

20230521-5

车牌识别 easypr + opencv

image-20230528171404368

20230521-6

XPM 图片改变颜色

20230521-7

client 同步函数修改异步函数,movetothread

20230527-1

代码中不要放入中文

20230527-2

解决信号没执行,因为大小写错误

20230527-3

Qt 单例模式

Q_GLOBAL_STATIC(Rule, rule)

20230527-4

image-20230527215951838

QStackedWidget 使用

20230527-5

QFileInfoList 遍历磁盘,读写文件

20230527-6

网络多线程收发 QTcpSocket QTcpServer

20230527-7

TEMPLATE = subdirs

SUBDIRS = CollabBuilderPrj

多工程管理,子目录的创建

20230527-8

python 过滤几乎空白的图片,减少细胞图片处理时间,然后借助 chatgpt 转成 C++ 代码

20230527-9

打印所有 Qt 窗口的句柄

20230527-10

点击按钮切换中英文界面语言

20230527-11

vue 地图 + webengine 调试模式卡,切成 profile 模式,其实就是 release + force_debug_info

20230527-12

image-20230528000226518

20230527-13

20230528-1

图标和窗口标题栏文字替换 使用 ResHacker替换图标

使用notepad++修改res字段实现标题栏文字替换

1个中文字符3个字节

1

20230529-1

20230530-1

Chartdirector 滚动条缩放 QChartView

image-20230530234544782

20230601-1

webengine 设置 token

20230601-2

QStorageInfo 磁盘驱动器

20230602-1

音乐播放器

20230603-1

环境变量 C:\Program Files\MATLAB\R2023a\bin\win64

用户激活 C:/Program Files/MATLAB/R2023a/bin/win64/activate_matlab.exe

20230604-1

ubuntu16.04 + mysql5.7

sudo apt install libxcb-xinerama.so.0

sudo apt-get install g++

sudo apt-get install libx11-dev libxext-dev libxtst-dev

sudo apt-get install xlibmesa-gl-dev libglu1-mesa-dev

sudo apt-get install build-essential

sudo apt-get install libqt4-dev

20230611-1

VTK显示3D点云并集成到QWidget

widget3d 类的 sendCloud 函数

20230611-2

ros的消息队列

20230613-1

中缀表达式转逆波兰表达式

20230627-1

麒麟系统发布的软件 xcb 错误,解决方式 export LD_LIBRARY_PATH=./lib

20230627-2

QT exe 添加控制台 CONFIG += console,这样 freopen 才有效

20230627-3

mysql 改 gbk,但是 QSqlError 是 utf8,先 QString::fromUtf8(str.toLatin1())

20230627-4

运行时打不开mysql,可以把libmysql.dll放debug目录

20230629-1

15047839E59C9F22303571F
15249798E8B186359108C46

20230714-1

ODBC连接不上,先安装2个程序

bool MdbConnect(const QString &mdb, QSqlDatabase &db) { qDebug() << QSqlDatabase::drivers(); db = QSqlDatabase::addDatabase("QODBC"); QDateTime curDatetime = QDateTime::currentDateTime(); QString time = curDatetime.toString("yyyy_MM_dd_hh:mm:ss"); db = QSqlDatabase::addDatabase("QODBC",time); db.setDatabaseName(QString("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=E:\Admin.mdb")); if(db.open()) { return true; } else { qDebug() << db.lastError(); QMessageBox::information(nullptr, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("连接数据库 ")+mdb+QString::fromLocal8Bit(" 失败")); return false; }

}

20230811

UTF8 使用

QMAKE_CFLAGS += /utf-8

QMAKE_CXXFLAGS += /utf-8

20230820

DEFINES -= UNICODE _UNICODE

20230821

windeployqt.exe是qt自带的打包工具,在打包qml程序时需要带上–qmldir参数,指定qml导入符号的路径,否则会出现无法启动的问题。

windeployqt xxx.exe --qmldir=D:\Qt\Qt5.9.9\5.9.9\mingw53_32\qml

--qmldir=C:\Qt\5.15.2\msvc2019_64\qml

20231109

https://blog.csdn.net/qq_43680827/article/details/123344162

Qt连接sql server

image-20231109210204089

20231115

https://blog.csdn.net/weixin_36323170/article/details/129979609

dump生成 Qt+MSVC

一、首先在软件项目pro文件中添加:

LIBS += -lDbgHelp

二、main.cpp文件中添加

20231119

Qt自适应高分辨率(DPI)

在 main.cpp 最开始加入以下语句:

 

20231202

树莓派ArmV8,VNC设置

/usr/bin/vncserver-virtual -depth 24 -geometry 1920x1080 :1

20231214

MacOS mysql 不要用相对路径,因为默认程序.app路径是个目录

20231218

查找dll的导出函数

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\dumpbin.exe" /exports untitled6.dll

20231227

编译显示红色条,却不提示错误 编译输出显示如下 进程“D:\QT\Tools\QtCreator\bin\jom.exe”退出,退出代码2

从网上搜了好多版本,都说是把工具->选项->构建和运行中的使用jom代替nmake勾选掉重新编译,尝试之后发现仍然未解决。

最终发现是Resources文件夹ImageIco中添加的图片有一个丢失了,导致编译错误。

20240113

VS2015

https://pan.baidu.com/s/1udgnqIgqkvBZx2u-JUAcrg?pwd=ae6f

ed2k://|file|cn_visual_studio_community_2015_x86_dvd_6847368.iso|4013920256|EB7F6605EDE67509E218E29173AC6574|/

  在Win7或Win10上,安装VS2015时,有时报"安装包丢失或损坏"错误。出现这种错误的原因是当前的系统上缺少了2个证书,把这个2证书安装后,再安装或修复VS2015即可。步骤如下:

1、跳过包     当出现"安装包丢失或损坏"报错时,请点击【跳过包】,然后一路默认,直到安装完成。每次出现报错,请都选择【跳过包】

2、安装2个证书 双击.cer文件,即可安装证书

3、修复缺失的包 打开VS2015安装 --》修复 --》一路默认,即可安装之前丢失的包。

image-20240119181020471

20240119

【环境变量】

【VS140COMNTOOLS】C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\

【QT_QPA_PLATFORM_PLUGIN_PATH】C:\Qt\5.15.2\msvc2019_64\plugins\platforms

【Qt5_DIR】C:\Qt\5.15.2\msvc2019_64

20240125

快速用cmd打开环境变量设置页面 因为有时候经常要设置,每次都要打开我的电脑,然后右键

习惯用键盘操作的我们肯定想要用代码操作

win+r 输入 sysdm.cpl

20240129

你在 anaconda 下的 powershell下 cd 到heat 目录,输入

pyinstaller -F -p heat.py -p func.py --hidden-import openpyxl.cell._writer Structure-phenotype.py

把logo.ico myplota.svg cover_image.tif Graphical.tif 复制到exe 下,再运行exe

pyinstaller -D inference_flask.py --hidden-import mmcv --hidden-import mmcv._ext

20240131

生成 web 后端 API

运行后端

运行前端

阿里云用的 wu15721454115@163.com 的安全策略

20240203

树莓派挂载硬盘

fdisk -l 找到新接入的硬盘,通常是/dev/sda+一个序号(第一块硬盘则直接是/dev/sda) sudo mkfs.ext4 /dev/sda 硬盘文件系统格式化为ext4 sudo mount /dev/sda /home/wu/pi 将硬盘挂载到 /home/wu/pi 目录下。 df -h 即可看到新挂载的硬盘对应的目录信息 配置开机自动挂载(如果不配置,系统重启后上述配置会失效) sudo nano /etc/fstab 添加一行: /dev/sda /home/wu/pi defaults 0 0 然后 sudo reboot

20240204-1

如何永久关闭windows安全中心?

1、在键盘上按快捷键【WIN+R】 或者鼠标右击桌面左下角Windows图标,选择【运行】弹出运行窗口。

2、输入【gpedit.msc】,然后点击【确定】,打开【本地组策略编辑器】

3、在【本地组策略编辑器】-【计算机配置】中依次打开【管理模板】、【Windows组件】、【Microsoft Defender防病毒】

img

4、在【Microsoft Defender防病毒】中双击【关闭Microsoft Defender防病毒】。

img

5、选择【已启用】,点击【应用】,然后点击【确定】。

img

6、然后双击【允许反恶意软件服务始终保持运行状态】。

img

7、选择【已禁用】,点击【应用】,然后点击【确定】。

img

8、双击【实时保护】。

img

10、选择【已启用】,点击【应用】,然后点击【确定】。

img

11、双击【扫描所有下载文件和附件】。

img

12、选择【已禁用】,点击【应用】,然后点击【确定】。

img

13、点击【开始菜单】,然后点击【设置】。

14、点击【更新和安全】。

15、打开【病毒和威胁防护】。

16、打开【管理设置】。

17、把这四项全部关闭,这里一定要关闭,不然前面设置的没用。

18、鼠标右击任务栏,点击【任务管理器】,点击【启动】,选中【windows...】,鼠标右击点击【禁用】。

设置完成后,重启电脑

20240204-2

VMware虚拟机安装win10卡顿优化

一,创建虚拟机之前的优化

  1. 主页 > 编辑 > 首选项

img

  1. 首选项 > 内存

img

3.首选项 > 优先级

img

二,创建虚拟机的优化

  1. 首先,需要创建好一个虚拟机,如何创建虚拟机?

  2. 点击创建好了的虚拟机 > 编辑虚拟机设置

img

  1. 虚拟机设置 > 选项 > 高级

img

  1. 虚拟机设置 > 硬件 > 声卡&打印机 移除

img

三,启动虚拟机

img

系统安装好后,一定要安装 VMware Tool,否则系统会特别卡

虚拟机 > VMware Tools > 双击

 

img

img

下一步

img

选择完整安装

img

安装

img

安装完成过后,分辨率就会自动调整,并且可以直接从桌面拖动文件到虚拟机

img

四,可能遇到的问题

img

解决:按 下键, 选择第二个,连续按几下

img

img

20240205

Ubuntu22.04 Could not get lock /var/lib/dpkg/lock-frontend

This may happen if

  1. 'Synaptic Package Manager' or 'Software Updater' is open.

  2. Some apt command is running in Terminal.

  3. Some apt process is running in background.

For above wait for the process to complete. If this does not happen run in terminal:

If none of the above works, remove the lock files. Run in terminal: (Note that this can seriously break your system.)

then reconfigure the packages. Run in terminal:

and

That should do the job.

20240207

Pycharm出现的一些问题和解决办法

1.每次启动打开多个项目,速度很慢。改为每次启动询问打开哪个单一项目 Setting -> Appearance & Behavior -> System Settings -> Project -> 关闭Reopen projects on startop

2.一直显示《正在关闭项目closing project》,关不上 pycharm 主页 Help -> Find Action -> 输入 Registry -> 禁用 ide.await.scope.completion

3.Downloading pre-built shared indexes 很慢 pycharm 为了降低生成索引所带来的 cpu 消耗,所以提供了下载索引,但是网络问题起了反效果。而开发的电脑通常能承受这点 cpu 消耗。所以我们关闭这项功能即可 Files -> settings -> Tools -> Shared Indexes -> Public Shared Indexes ->Don’t download,use local indexes

20240207-2

https://github.com/NOMADxzy/basicKVSR

image-20240207105840418

20240208-1

python -m venv test_env

cd test_env\Scripts

activate

pip list

python.exe -m pip install --upgrade pip

pip install opencv-python

pip install matplotlib

pip install keras

pip install tensorflow

pip install scipy

pip install scikit-learn

pip install pyinstaller

pyinstaller -F qt.py

20240211

树莓派IP

ping raspberrypi.local

20240219

You need to set the value of upload_max_filesize and post_max_size in your php.ini :

; Maximum allowed size for uploaded files. upload_max_filesize = 64M

; Must be greater than or equal to upload_max_filesize post_max_size = 64M

After modifying php.ini file(s), you need to restart your HTTP server to use new configuration.

You may also increase the size using .htaccess in php

20240219-3

XmlModel

image-20240219140022594

20240223-1

export LD_LIBRARY_PATH=pwd/lib export QT_PLUGIN_PATH=pwd/plugins export QML2_IMPORT_PATH=pwd/qml ./MyApp

20240226

意外关闭了 QtCreator 的菜单栏

重新恢复按 Ctrl+Alt+M

20240226-2

编译Qt WebEngine msvc 2017 x64

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"

qmake -- -webengine-proprietary-codecs

cd C:\Qt\5.15.1\Src\qtwebengine

SET PATH=C:\Python27;C:\Qt\5.15.1\Src\gnuwin32\bin;%PATH%

 

20240228

更新 PHP Swagger Api文档

php artisan l5-swagger:generate

20240229

Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isn't set

意思是忘记删 .qmake.stage 文件了,从 mingw 切换 msvc 的报错

20240229-2

openssl.exe link 报错

Windows: #pragma comment(lib, "user32.lib") #pragma comment(lib, "gdi32.lib") #pragma comment(lib, "advapi32.lib")

20240229-3

错误 1 error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 __tmainCRTStartup 中被引用 c:\Users\administrator\documents\visual studio 2013\Projects\Win32Project1\Win32Project1\MSVCRTD.lib(crtexew.obj) Win32Project1

image-20240229152534772

20240306

系统环境变量添加

pro文件

20240311

PHP 上传报错 413 Request Entity Too Large

服务器post支持最大长度修改

/etc/nginx/nginx.conf

http { client_max_body_size 20m; client_body_buffer_size 20m; }

php.ini(cli目录、fpm目录两者都得改)

post_max_size=20M upload_max_filesize=20M

20240321

Android file:///C:/Qt/Docs/Qt-6.8.0/qtdoc/android-getting-started.html

20240323

删除百度网盘windows右键菜单的脚本

20240327

sql 查询时,table 字段可以加 单引号 也可以不加

20240330

GEC6818开发板 arm-v7

/SATA存储12/交叉编译/

./configure -opensource -confirm-license -release -strip -shared -xplatform linux-arm-gnueabi-g++ -make examples -nomake tools -nomake tests -widgets -dbus-runtime --pcre=qt --zlib=qt -no-openssl --freetype=qt --harfbuzz=qt -no-opengl --xcb=no --libpng=qt --libjpeg=qt --sqlite=qt -plugin-sql-sqlite -gif -ico -recheck-all

交叉编译工具链下载

https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/

https://dev.t-firefly.com/thread-100142-1-1.html

RK3288 交叉编译

./configure -opensource -confirm-license -release -strip -shared -xplatform linux-arm-gnueabi-g++ -make examples -nomake tools -nomake tests -widgets -dbus-runtime --pcre=qt --zlib=qt -no-openssl --freetype=qt --harfbuzz=qt -no-opengl --xcb=no --libpng=qt --libjpeg=qt --sqlite=qt -plugin-sql-sqlite -gif -ico -recheck-all

./configure -opensource -debug -confirm-license -xplatform linux-arm-gnueabi-g++ -no-opengl -no-pch -shared -no-iconv -no-xcb

20240331

关于visual studio和vc版本之间的对应关系(更新至2020.07)

VC版本号VS对应版本CMake设置
MSVC++ 4.x _MSC_VER == 1000
MSVC++ 5.0 _MSC_VER == 1100
vc6VC6.0_MSC_VER == 1200
vc7VS2002 Visual studio.net_MSC_VER == 1300
vc7.1Visual studio 2003_MSC_VER == 1310
vc8Visual studio 2005_MSC_VER == 1400
vc9Visual studio 2008_MSC_VER == 1500
vc10Visual studio 2010_MSC_VER == 1600
vc11Visual studio 2012_MSC_VER == 1700
vc12Visual studio 2013_MSC_VER == 1800
vc13VS2014 
vc14 MSVC++ 14.0Visual studio 2015_MSC_VER == 1900
vc15 MSVC++ 14.1Visual studio 2017_MSC_VER == 1911
vc16 MSVC++ 14.2Visual studio 2019 (估计微软会这么来的:VC14.20, 21, 22, 23, ...etc) 

20240401

停止AliProtect服务

管理员模式打开cmd,输入 sc delete AlibabaProtect 回车,删除AlibabaProtect服务,得到成功的提示。

重启电脑,任务管理器中alibabaprotect进程和服务已经消失。

然后进入C:\Program Files (x86)目录,删除AlibabaProtect整个目录。

20240406

删除休眠文件 hiberfil.sys

关闭UAC

C:\WINDOWS\System32\UserAccountControlSettings.exe

20240406-2

编译QWebengine-MSVC2019-x64

20240412

在基于Ubuntu和基于Debian的Linux发行版上,运行以下命令来安装ifconfig:

sudo apt install net-tools -y

20240414

手机蓝牙各类服务对应的UUID(常用的几个已通过验证)

ServiceDiscoveryServerServiceClassID_UUID = '{00001000-0000-1000-8000-00805F9B34FB}'

BrowseGroupDescriptorServiceClassID_UUID = '{00001001-0000-1000-8000-00805F9B34FB}'

PublicBrowseGroupServiceClass_UUID = '{00001002-0000-1000-8000-00805F9B34FB}'

#蓝牙串口服务

SerialPortServiceClass_UUID = '{00001101-0000-1000-8000-00805F9B34FB}'

LANAccessUsingPPPServiceClass_UUID = '{00001102-0000-1000-8000-00805F9B34FB}'

#拨号网络服务

DialupNetworkingServiceClass_UUID = '{00001103-0000-1000-8000-00805F9B34FB}'

#信息同步服务

IrMCSyncServiceClass_UUID = '{00001104-0000-1000-8000-00805F9B34FB}'

SDP_OBEXObjectPushServiceClass_UUID = '{00001105-0000-1000-8000-00805F9B34FB}'

#文件传输服务

OBEXFileTransferServiceClass_UUID = '{00001106-0000-1000-8000-00805F9B34FB}'

IrMCSyncCommandServiceClass_UUID = '{00001107-0000-1000-8000-00805F9B34FB}'

SDP_HeadsetServiceClass_UUID = '{00001108-0000-1000-8000-00805F9B34FB}'

CordlessTelephonyServiceClass_UUID = '{00001109-0000-1000-8000-00805F9B34FB}'

SDP_AudioSourceServiceClass_UUID = '{0000110A-0000-1000-8000-00805F9B34FB}'

SDP_AudioSinkServiceClass_UUID = '{0000110B-0000-1000-8000-00805F9B34FB}'

SDP_AVRemoteControlTargetServiceClass_UUID = '{0000110C-0000-1000-8000-00805F9B34FB}'

SDP_AdvancedAudioDistributionServiceClass_UUID = '{0000110D-0000-1000-8000-00805F9B34FB}'

SDP_AVRemoteControlServiceClass_UUID = '{0000110E-0000-1000-8000-00805F9B34FB}'

VideoConferencingServiceClass_UUID = '{0000110F-0000-1000-8000-00805F9B34FB}'

IntercomServiceClass_UUID = '{00001110-0000-1000-8000-00805F9B34FB}'

#蓝牙传真服务

FaxServiceClass_UUID = '{00001111-0000-1000-8000-00805F9B34FB}'

HeadsetAudioGatewayServiceClass_UUID = '{00001112-0000-1000-8000-00805F9B34FB}'

WAPServiceClass_UUID = '{00001113-0000-1000-8000-00805F9B34FB}'

WAPClientServiceClass_UUID = '{00001114-0000-1000-8000-00805F9B34FB}'

#个人局域网服务

PANUServiceClass_UUID = '{00001115-0000-1000-8000-00805F9B34FB}'

#个人局域网服务

NAPServiceClass_UUID = '{00001116-0000-1000-8000-00805F9B34FB}'

#个人局域网服务

GNServiceClass_UUID = '{00001117-0000-1000-8000-00805F9B34FB}'

DirectPrintingServiceClass_UUID = '{00001118-0000-1000-8000-00805F9B34FB}'

ReferencePrintingServiceClass_UUID = '{00001119-0000-1000-8000-00805F9B34FB}'

ImagingServiceClass_UUID = '{0000111A-0000-1000-8000-00805F9B34FB}'

ImagingResponderServiceClass_UUID = '{0000111B-0000-1000-8000-00805F9B34FB}'

ImagingAutomaticArchiveServiceClass_UUID = '{0000111C-0000-1000-8000-00805F9B34FB}'

ImagingReferenceObjectsServiceClass_UUID = '{0000111D-0000-1000-8000-00805F9B34FB}'

SDP_HandsfreeServiceClass_UUID = '{0000111E-0000-1000-8000-00805F9B34FB}'

HandsfreeAudioGatewayServiceClass_UUID = '{0000111F-0000-1000-8000-00805F9B34FB}'

DirectPrintingReferenceObjectsServiceClass_UUID = '{00001120-0000-1000-8000-00805F9B34FB}'

ReflectedUIServiceClass_UUID = '{00001121-0000-1000-8000-00805F9B34FB}'

BasicPringingServiceClass_UUID = '{00001122-0000-1000-8000-00805F9B34FB}'

PrintingStatusServiceClass_UUID = '{00001123-0000-1000-8000-00805F9B34FB}'

#人机输入服务

HumanInterfaceDeviceServiceClass_UUID = '{00001124-0000-1000-8000-00805F9B34FB}'

HardcopyCableReplacementServiceClass_UUID = '{00001125-0000-1000-8000-00805F9B34FB}'

#蓝牙打印服务

HCRPrintServiceClass_UUID = '{00001126-0000-1000-8000-00805F9B34FB}'

HCRScanServiceClass_UUID = '{00001127-0000-1000-8000-00805F9B34FB}'

CommonISDNAccessServiceClass_UUID = '{00001128-0000-1000-8000-00805F9B34FB}'

VideoConferencingGWServiceClass_UUID = '{00001129-0000-1000-8000-00805F9B34FB}'

UDIMTServiceClass_UUID = '{0000112A-0000-1000-8000-00805F9B34FB}'

UDITAServiceClass_UUID = '{0000112B-0000-1000-8000-00805F9B34FB}'

AudioVideoServiceClass_UUID = '{0000112C-0000-1000-8000-00805F9B34FB}'

SIMAccessServiceClass_UUID = '{0000112D-0000-1000-8000-00805F9B34FB}'

PnPInformationServiceClass_UUID = '{00001200-0000-1000-8000-00805F9B34FB}'

GenericNetworkingServiceClass_UUID = '{00001201-0000-1000-8000-00805F9B34FB}'

GenericFileTransferServiceClass_UUID = '{00001202-0000-1000-8000-00805F9B34FB}'

GenericAudioServiceClass_UUID = '{00001203-0000-1000-8000-00805F9B34FB}'

GenericTelephonyServiceClass_UUID = '{00001204-0000-1000-8000-00805F9B34FB}'

20240415

20240415-1

shotcut编译windows版本

https://blog.csdn.net/su_vast/article/details/126880820

https://github.com/mltframework/shotcut

20240416

windows编译QWebEngine

Added #include <limits> to qbytearraymatcher.h

20240418

Qt for Android访问数据库

20240418

编译 Qt6 QWebEngine

编译Qt5.15.1 QWebEngine

【mathutil.cpp】C:\Users\Administrator\Desktop\qtwebengine-everywhere-src-5.15.1\qtwebengine-everywhere-src-5.15.1\src\3rdparty\chromium\third_party\angle\src\common

【lab_color_space.h】C:\Users\Administrator\Desktop\qtwebengine-everywhere-src-5.15.1\qtwebengine-everywhere-src-5.15.1\src\3rdparty\chromium\third_party\blink\renderer\platform\graphics

【timestamped_trace_piece.h】C:\Users\Administrator\Desktop\qtwebengine-everywhere-src-5.15.1\qtwebengine-everywhere-src-5.15.1\src\3rdparty\chromium\third_party\perfetto\src\trace_processor

【qt5.15.1_webengine_patch.zip】C:\Qt\5.15.1\Src\qtwebengine

删除 C:\Qt\5.15.1\Src\qtwebengine 的编译缓存

PATH 环境变量C:\Python27;C:\Qt\5.15.1\Src\gnuwin32\bin;C:\Qt\5.15.1\msvc2019_64;C:\Qt\5.15.1\msvc2019_64\bin;C:\Qt\5.15.1\msvc2019_64\lib;

cd C:\Qt\5.15.1\Src\qtwebengine

qmake -- -webengine-proprietary-codecs

C:\Python27;C:\Qt\5.15.1\Src\gnuwin32\bin;C:\Qt\5.15.1\msvc2019_64;C:\Qt\5.15.1\msvc2019_64\bin;C:\Qt\5.15.1\msvc2019_64\lib;

编译Qt6.7

https://doc.qt.io/qt-6/qtwebengine-platform-notes.html

Note: It is not recommended to use tools from msys2 or cygwin to build Qt WebEngine as it may result in build errors.

https://doc.qt.io/qt-6/windows-building.html

https://wiki.qt.io/QtWebEngine/Qt6Build

%comspec% /k "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"

https://sourceforge.net/projects/gnuwin32/files/

SET PATH=C:\GnuWin32\bin;%PATH%

(编译器文件“msc1.cpp”,第 1587 行)要解决此问题,请尝试简化或更改上面所列位置附近的程序

https://www.javaai.org/a/c892d1e98c718f2a018c7865bb870000

解决问题一,tool_wrapper.py 读取文件编码问题:

进入 qt 源码目录,找到并用任意编辑器打开上述报错的 tool_wrapper.py 文件,定为到 81 行,可以看到下面的代码:

调整 open 函数的参数,增加 encoding='utf-8' 参数即可解决:

解决问题2,编译子进程输出文本编码问题:

tool_wrapper.py 第 144 行是 line = line.decode('utf8'),而这里的 line 是 link 命令的输出结果,在中文版 Windows 平台,控制台输出的文本是 GBK 编码的,这里需要修改成 'gbk' 即可。

在 tool_wrapper.py 文件中,滚动条继续向下拉,找到 163 行,可以看到这里也使用了 utf8 编码来读取子程序的输出内容:

https://wiki.qt.io/QtWebEngine/Qt6Build

https://doc.qt.io/qt-6/windows-building.html

configure -webengine-proprietary-codecs

https://www.jianshu.com/p/2a42d11a2987

20240419

安装qemu麒麟arm

qemu-img create -f qcow2 D:\kylin_arm\kylindisk.qcow2 150G

qemu-system-aarch64.exe -m 32000 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios D:\kylin_arm\QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=D:\kylin_arm\kylindisk.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=D:\kylin_arm\Kylin-Server-10-SP1-Release-Build04-20200711-arm64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net user,hostfwd=tcp::2222-:22

qemu-system-aarch64 -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios D:\kylin_arm\QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=D:\kylin_arm\arm64\kylindisk.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -net nic -net user,hostfwd=tcp::2222-:22

20240504

Windows关闭磁盘碎片整理和优化驱动器定时任务计划

SCHTASKS /Change /DISABLE /TN "\Microsoft\Windows\Defrag\ScheduledDefrag"

20240511

C:\Users\Administrator>dism /online /cleanup-image /analyzecomponentstore

部署映像服务和管理工具 版本: 10.0.19041.3636

映像版本: 10.0.19045.4291

[==========================100.0%==========================]

组件存储(WinSxS)信息:

Windows 资源管理器报告的组件存储大小 : 11.50 GB

组件存储的实际大小 : 10.87 GB

上次清理的日期 : 2024-05-07 05:28:53

可回收的程序包数 : 3 推荐使用组件存储清理 : 是

操作成功完成。

20240513

C:\Windows\System32\devmgmt.msc

命令功能
C:\Windows\System32\OptionalFeatures.exe启用或关闭 Windows 功能
rundll32.exe shell32.dll,Control_RunDLL access.cpl轻松使用设置中心
C:\Windows\System32\inetcpl.cpl ,4代理设置
rundll32.exe shell32.dll,Control_RunDLL所有控制面板项
appwiz.cpl程序和应用
bthprops.cpl蓝牙和其他设备
desk.cpl屏幕
Firewall.cplWindows Defender 防火墙
hdwwiz.cpl设备管理器
inetcpl.cplInternet 属性
intl.cpl区域
joy.cpl游戏控制器
main.cpl鼠标 属性
mmsys.cpl声音
ncpa.cpl网络连接
powercfg.cpl电源选项
sysdm.cpl系统属性
TabletPC.cpl笔和触控
telephon.cpl位置信息
timedate.cpl日期和时间
wscui.cpl安全和维护

20240519

windows中mysql如何设置远程连接

打开CMD 1.连接Mysql (连接方式:mysql -u 你设置的用户名 -p你设置的密码 ) 2.查看数据库:show databases;我们会看到有一个叫做"mysql"的数据库,这里我们输入use mysql 进入’mysql’数据库中

3.执行GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '你设置的密码' WITH GRANT OPTION; 注意:mysql8.0及以上版本需要使用以下语句:

create user root@'%' identified by '设置的密码'; grant all privileges on . to root@'%' with grant option; 4.刷新,FLUSH PRIVILEGES; 5.退出,此时就可以进行远程连接了。 注意:‘%’ 指所有ip都可远程连接此电脑。如果%变成ip 仅指定该ip可以远程连接至此电脑。

QSqlError("2059", "QMYSQL: Unable to connect", "Authentication plugin 'caching_sha2_password' cannot be loaded: 找不到指定的模块。\r\n")

PHP artisan serve 运行项目之后不能用 ip 地址访问

php artisan serve --host 0.0.0.0

20240523

Microsoft Visual C++ Redistributable latest supported downloads

https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170

20240529

解决Qt程序桌面图标有锯齿的问题

准备一张128128或者256256尺寸的png格式图标

打开这个图标转换网站,https://www.aconvert.com/cn/icon/png-to-ico/

RC_FILE = app.rc

IDI_ICON1 ICON "app.ico"

20240604

通过程序打开TCP/IP属性窗口

https://blog.csdn.net/glonk/article/details/122203042

https://stackoverflow.com/questions/78468918/how-to-open-network-adapter-properties-via-windows-api

20240618

MariadbMysql
5.1 5.2 5.35.1
5.55.5
10.0 10.15.6
10.2 10.3 10.45.7
10.48 有限代替
10.58 有限代替
10.6 10.7 10.8 10.9 10.108
可以认为从 10.5 开始和 mysql8 对应起来了8

20240619

macos Qt6.5.0 mysql

Anaconda 环境变量

bullseye 代表 Debian 11 发布于 2021 年 8 月

Trusty Tahr 代表 14.04 发布于 2014 年 4 月

Xenial Xerus 代表 16.04 发布于 2016 年 4 月

Bionic Beaver 代表 Ubuntu 18.04 发布于 2018 年 4 月

Focal Fossa 代表 Ubuntu 20.04 发布于 2020 年 4 月

Jammy Jellyfish 代表 Ubuntu 22.04 发布于 2022 年 4 月

20240724

installscript.qs

修改注册表的,并且判断注册表内容来决定ifw安装程序是否继续

20240924

编译Qt6.5.3的mingw64版本 mysql 插件

用的 mysql 8.0

编译方式:

QtCreator 打开 C:\Qt\6.5.3\Src\qtbase\src\plugins\sqldrivers\CMakeLists.txt

修改 C:\Qt\6.5.3\Src\qtbase\src\plugins\sqldrivers.cmake.conf 内容为

点击编译按钮

C:/tmp/include 和 C:/tmp/lib 两个目录是我自己创建的

来自 C:\Program Files\MySQL\MySQL Server 8.0 下的 include 和 lib

20240929

Ubuntu20.04 交叉编译 Qt6.6.3 到亮钻的 rk3568 上

内核版本 5.4 更常见于 Ubuntu 20.04 LTS

Ubuntu 22.04 LTS 默认使用 更高版本的内核(如5.15或更高)。

sudo du -sh 查看文件夹大小

20240930

Deploy Linux Qt APP [deployapp.sh]

运行脚本 start.sh

20241008

Qt安装换源

MaintenanceTool.exe --mirror http://mirrors.ustc.edu.cn/qtproject

  1. http://mirrors.ustc.edu.cn/qtproject

  2. http://mirrors.hust.edu.cn/qtproject/

  3. http://mirror.bit.edu.cn/qtproject

  4. http://mirrors.tuna.tsinghua.edu.cn/qt

同步 sysroot

sudo rsync -avz --delete wu@raspberrypi:/lib /home/wu/sysroot/ sudo rsync -avz --delete wu@raspberrypi:/usr/include /home/wu/sysroot/usr/ sudo rsync -avz --delete wu@raspberrypi:/usr/lib /home/wu/sysroot/usr/ sudo rsync -avz --delete wu@raspberrypi:/opt /home/wu/sysroot/

 

20241113

解决 Qt 程序编译的问题,C2143,C4430,C2238

原因:C++头文件循环引用了

image-20241113165839574

20241116

TBB 和 Qt 的关键字冲突,tbb 有 emit 关键字

QMake的话,禁用关键字

20241119

Qt 生成word、pdf文档

需求:将软件处理的结果保存为一个报告文档,文档中包含表格、图片、文字,格式为word的.doc和.pdf。生成word是为了便于用户编辑。

开发环境:qt4.8.4+vs2010

在qt的官网上对于pdf的操作介绍如下:http://qt-project.org/wiki/Handling_PDF 。即通过QPrinter类来创建pdf;还有通过第三方库PoDoFo、Hummus。本文主要介绍的是用QPrinter类来创建pdf。

在qt的官网上对于word的操作介绍如下:http://qt-project.org/wiki/Handling_Microsoft_Word_file_format 。即通过Word本身COM组件的形式,Qt的ActiveX框架来实现;还有通过xml来实现。本文主要介绍Qt ActiveX和html格式生成word文档。

下面举例详细说明pdf和word文档的生成:

1.pdf的生成

pdf文档里要求有表格、图片、文字,参考博客:http://blog.sina.com.cn/s/blog_a6fb6cc90101gvnx.html。里面有介绍文字、图片、表格分别是怎样通过QPrinter类来实现的。但是遇到一个麻烦就是怎样把这三种格式的东西放在一起而且排版好呢,用上述博客里的方法尝试之后,最终确定使用第三种生成表格(html格式)的方式来得到:

GeneratePicWord()函数的内容大致如下:

最后结果得到的pdf如图:

img

2.word的生成

word的生成可以用QActiveX来实现。博客:http://www.360doc.com/content/14/0227/16/7918060_356177077.shtml里说的比较详细了。首先新建一个模板文件Id.dot,在模板文件中事先“插入”-》“书签”,如下图所示:

img

书签主要在表格的第一行前两列,分别是code,ndvi。表格下面有两个书签,分别是pic,pic2。用代码插入需要的文字和图片:

得到的结果就不贴了。存在有两个问题:1.在生成的word里图片的大小非常小,需要人为把它拉大才看得到;2.表格数据只会插入到第一行已经预设好书签的位置。对于有多条数据,还不知道怎样动 态创建 书签来插入数据。在网上找了些资料,未能很好的通过模板书签的方式来解决这两个问题。 那么想通过上面生成pdf时的html能不能直接保存为.doc文件呢?答案是能!而且节约了很多时间,只需一次生成固定格式的html,就可以保存为pdf和doc文件,多好的事情啊,为什么要用Qt ActiveX呢。

当然不能直接把生成pdf的文件名改成doc就行了,还需要做下面一个事情:

主要在后面那4行,将html输出到doc文件中去。 得到的结果如图:

img

pdf和word的生成就完成了,具体得到的结果可能格式上还需要调整,html对于调格式还是很方便的。

20241130

编译 vlc-qt

20241202

编译 ffmpeg

20241213

protoc.exe 命令使用

C:\Users\Administrator\Desktop\mingw64\server>C:\vcpkg\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe -I ./ --grpc_out=./ --plugin=protoc-gen-grpc="C:/vcpkg/vcpkg/installed/x64-windows/tools/grpc/grpc_cpp_plugin.exe" ./helloworld.proto

C:\Users\Administrator\Desktop\mingw64\server>C:\vcpkg\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe -I ./ --cpp_out=./ ./helloworld.proto

20241220

查看MD5

certutil.exe -hashfile C:/Users/Administrator/Desktop/work/dianyao/testLogin/wrpc.crt MD5

20241223

继承顺序要求:QObject 在最前面

元对象系统要求 QObject 是 Qt 的元对象系统的基础类,提供信号与槽、动态属性等功能。 如果 QObject 不作为第一个基类,可能会导致其虚函数表(vtable)和内存布局出现问题,破坏 Qt 元对象系统的功能。

解决多继承的冲突 当多继承中涉及 QObject 和其他非 QObject 的基类(如 QGraphicsItem),将 QObject 放在最前面可以避免二义性问题,确保 QObject 的功能正常工作。

20241224

image-20241224033727382image-20241224033823566

image-20241224033758508

20241226

image-20241227050235023