问题: python如何调用Qt带有GUI模块的DLL?



环境配置:

Win10 X64

Python 3.5.2 32 bit

Qt 5.5.1 MinGW 4.9.2 32.bit




Qt DLL代码实现:

extern "C" __declspec(dllexport)  void showMessageWindow(char *msg)
{
    QMessageBox::information(nullptr, "Title", msg);
}

extern "C" __declspec(dllexport) int add(int num1, int num2)
{
    return num1 + num2;
}

python调用代码:

from ctypes import *
dll = cdll.LoadLibrary("QtDllTest.dll")
print("add result=", dll.add(1, 2))
dll.showMessageWindow(b"Hello, Python Call C++!");

python执行结果:

图片说明

代码说明:
1. python正常调用add函数。执行结果打印出了"add result= 3";
2. python调用showMessageWindow失败。showMessageWindow设计GUI模块。



问题: python如何调用Qt带有GUI模块的DLL?


本人的探索:

  • python可以正常调用VC带UI的DLL.

  • 网上资料建议在可执行程序下,加入Qt5.5.1/5.5/mingw492_32的platforms和plugins目录下所有内容.结果仍然出现上面的错误.

4个回答

简单的话,把QT UI做一个进程,python启动这个进程

thinct
thinct 谢谢,不过我是想Qt封装一套SDK,然后Python可以针对API写一些简单的测试。
接近 3 年之前 回复

有个PYQT是做UI的

thinct
thinct 嗯,是的。因为我是想python直接调用,这样比较轻量级。在Linux下,甚至都不用安装Python都可以调用Qt生成的库文件。如此一来,我的测试程序,也可以完成跨平台任务。
接近 3 年之前 回复

问题已经解决了。。。

qq_30029123
qq_30029123 求指教
大约 2 年之前 回复
qq_30029123
qq_30029123 怎么解决的?
大约 2 年之前 回复

上一起自学吧看看那里资料多

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!