Qt如何在一个进程中兼容多个qt版本
// since multiple Qt versions can be used in one process
// each one has to have window class names with a unique name
// The first instance gets the unmodified name; if the class
// has already been registered by another instance of Qt then // add a UUID. The check needs to be performed for each name
// in case new message windows are added (QTBUG-81347).
qwindowscontext的registerWindowClass的注释明确表示可以在一个进程中使用多个版本的qt,但是实际上并非如此,在源码中有一个用于判断窗口类是否被注册的代码并没有生效:
const auto appInstance = static_cast<HINSTANCE>(GetModuleHandle(nullptr));
WNDCLASS wcinfo;
const bool classExists = GetClassInfo(appInstance, reinterpret_cast<LPCWSTR>(cname.utf16()), &wcinfo) == TRUE && wcinfo.lpfnWndProc != proc;
if (classExists)
cname += QUuid::createUuid().toString();
导致窗口类重名并没有正确判断出,导致窗口类名重复注册(但是第二个注册的时候失败了)。最终导致的结果就是后续使用的qt版本开发的qt界面打开后白屏,无法正常显示。该如何解决这个问题呢。
相关推荐
Qt 5.14.2 QWebEngineView 支持mp4播放
Qt 5.14.2 QWebEngineView 支持mp4播放
QT中进程的创建
本篇文章将带大家学习QT中进程的创建。QProcess类是Qt中用于启动和控制外部进程的类。它提供了一系列方法来执行外部命令、与进程进行交互,并获取进程的输出信息。下面是一些QProcess类的常用功能:1.启动进程:使用start()方法启动外部进程。可以设置要执行的程序路径和命令行参数,还可以设置工作目录和环境变量。2.进程状态:可以使用state()方法获取进程的当前状态,包括运行中、停止、完成等状态。还可以使用error()方法获取任何错误发生时的错误代码。
Qt编写软件来模拟线程的作用
通过线程及槽函数使LCD控件显示秒数,与主进程不冲突,模拟线程的作用。利用Qt工具以及C++语言编写的图像化软件,此程序编写环境为win10,Qt4.3社区版。
linux qt 动态链接库
linux qt 动态链接库linux qt 动态链接库linux qt 动态链接库linux qt 动态链接库linux qt 动态链接库linux qt 动态链接库
Qt实现自动升级
Qt实现自动升级


