使用pythonqt创建模块

时间:2011-08-02 04:33:45

标签: python qt

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)

0 个答案:

没有答案