通过Boost Python MODU运行C++ QT应用程序

2024-09-30 18:13:59 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以通过python运行Qt gui应用程序作为boost模块?它是一个标准的C++可执行文件,但现在我把它编译成一个共享库,并试图从Python启动它。现在,每当我从解释器运行simpleMain()时,它就会进入python解释器。如中所示,每次关闭解释器时,我都会收到一个新的“python2.7.1+(r271:8683220011年4月11日,18:05:24)”问候语,程序也会出错。另外,我不能直接调用main函数,因为我不知道如何将python列表转换为char*。char的字符串似乎很自然。在

这是我启动它的python代码:

import libsunshine

libsunshine.simpleMain()

这是我的C++代码:

^{pr2}$

Tags: 模块代码应用程序可执行文件标准guiqt解释器
2条回答

嗯,通常叫main

argc == 1

即使没有参数,argc[0]是可执行文件名。在

另外,argv应该是指向以空指针结尾的字符串的指针列表,而不传递任何内容。根据QApplication解析参数列表的方式(它可能根据argc循环,或者只查找空指针),即使传递的argc为零,它也可能崩溃。
试试看

^{pr2}$

或者

char *args[2] = { "Dummy name", NULL }; main(1, args);

您可以用PyQt编写应用程序设置,这很简单

import sys
from PyQt4 import QtGui    
QtGui.QApplication(sys.argv)

在你剧本的开头。然后可以调用你的模块中的c++代码来打开/关闭/。。。窗户。(我有这样的代码)

我认为在c++中调用main是非法的,这可能是segfault的原因。在

相关问题 更多 >