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

问题: 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启动这个进程

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器