1

我有一个可以使用 Python 宏进行扩展的应用程序。由于不经常使用python,因此对于每个宏,我都会初始化python解释器,运行宏,然后完成解释器。

一切正常,除了 PyQt5:在第一个宏结束后,所有类都从 PyQt5 模块中消失。我猜这是静态变量的问题,并且 PyObject 在最终确定时被破坏。但是除了永远不要杀死 Python 解释器之外,还有什么可做的吗?

这是我的宏的代码:

from PyQt5 import QtWidgets

def initialize(X, Y, Z, printed, parent):
    X, ok = QtWidgets.QInputDialog.getDouble(parent, "Select radius", "X = ", float(X), 0, 10)
    if not ok:
        return False
    return X, X, X, printed

在第一次运行时,我有对话框,但在任何其他运行时,我都会收到错误:

Traceback (most recent call last):
  File "[...]/macros/TestBlur.py", line 13, in initialize
AttributeError: 'module' object has no attribute 'QInputDialog'

编辑:也许另一种看待这一点的方式是:有没有办法显式地实例化 PyQt5 的所有类,就像你必须调用import_array初始化numpy库一样?

4

0 回答 0