thinct 2016-12-12 06:57 采纳率: 0%
浏览 2040

问题: 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条回答 默认 最新

  • oyljerry 2016-12-12 07:03
    关注

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

    评论

报告相同问题?