问题描述
最近在写一些自定义小控件的时候,又双叒叕遇到了一些问题。
有时候自己的控件可以正常在QtCreator中的designer中显示,有的却显示不出来。明明都是一个方法构建出来的,怎么有的可以加载成功,有的却失败了?
然而把dll文件拷贝到msvc包下的designer目录中,启动desiger.exe又可以正常显示。
这个是已经解决的结果,解决之前红框内的东西不全
解决方法
首先查看一下,这些控件是否已经被识别到
点击进去,发现存在失败的插件
报的错误是 某某dll 找不到指定程序:说明这个dll依赖于其他的dll,但是QtCreator中并没有提供这个缺失的dll,那到底是那个?他也没说啊?
一般来说,如果你写的控件使用到了其他模块,就是在.pro
文件中添加了QT+=某某模块
,那dll大概和这个模块有关了。
举个例子,我自己的插件使用了QT+=statemachine
,所以缺少了Qt6StateMachine.dll
文件。
现在你需要做的事情:
- 找到你的msvc的bin目录(假设叫A目录),我的是
D:\software\Qt\6.8.3\msvc2022_64\bin
- 找到你的QtCreatroe的bin目录(假设叫B目录),我的是
D:\software\Qt\Tools\QtCreator\bin
- 在A目录中,找到需要的dll,拷贝到B目录中。
如果你觉得以后还可能出现这种情况,你干脆一次性把A目录中的所有的dll文件拷贝到B目录中,以后就不需要再去拷贝了。当然如果你下载了新的模块,那你还是需要再次拷贝一次的。
最后刷新一下
显示新的自定义窗口部件插件已经被找到,那就成功解决咯。