createModuleFromFile
有没有pythonqt文档?我已经设置了pythonqt,但我不确定我是否正确创建模块以便在另一个上下文中看到。在下面的代码中,我尝试从一个文件创建一个新模块,该文件包含一个我想在另一个文件中继承的类。
阅读文档时,它意味着createModuleFromFile
创建了另一个上下文,但我无法从中运行代码,无论如何我都需要导入多个模块。完成这个还有什么必要吗?现在,当尝试使用ImportError执行第二个脚本时,它会出错,说明该模块不存在。我还尝试在没有导入行的情况下背靠背地评估两个脚本,但是在第二个脚本中没有定义MeshImporter
。
PythonQt::init(PythonQt::RedirectStdOut);
PythonQtObjectPtr context = PythonQt::self()->getMainModule();
QObject::connect(PythonQt::self(), SIGNAL(pythonStdOut(QString)), this, SLOT(pythonStdOut(QString)));
QObject::connect(PythonQt::self(), SIGNAL(pythonStdErr(QString)), this, SLOT(pythonStdOut(QString)));
PythonQt::self()->createModuleFromFile("meshImporter", ":/plugins/meshImporter.py");
context.evalFile(":/plugins/objImporter.py");
示例模块:
class MeshImporter:
def extension(self):
raise NotImplementedError()
def importMesh(self, fileName):
raise NotImplementedError()
尝试导入模块的示例脚本:
from meshImporter import MeshImporter # fails here
class ObjImporter(MeshImporter):
def extension(self): return '.obj'
def importMesh(self, fileName):
print('Importing mesh: %s' % fileName)