当底层 C/C++ 对象被删除时,我试图避免众所周知的 PyQt 运行时错误:
http://www.riverbankcomputing.com/pipermail/pyqt/2009-April/022809.html
PyQt4 - “RuntimeError:底层 C/C 对象已被删除”
PyQt4 嵌套类 - “RuntimeError:底层 C/C++ 对象已被删除”
PyQt:RuntimeError:包装的 C/C++ 对象已被删除
我的每个子类都调用该super()
方法,因此基类构造正确。
尽管如此,我还是收到了这个错误,我想知道这是否是因为我向 a 添加了一个QComboBox
小部件QTreeWidgetItem
(使用 a 的setItemWidget()
方法QTreeWidget
),但我无法将父级设置为QTreeWidgetItem
包含它的那个。当我尝试时,我收到以下错误:
TypeError: QComboBox(QWidget parent=None): argument 1 has unexpected type 'QTreeWidgetItem'
当然,我可以在构造函数中省略父级,也可以将其QTreeWidget
作为父级传递,但我认为我需要引用正确的父级。
我已经对QComboBox
和 在我的子类中运行了一些基本操作QTreeWidget
,但是一旦我进入我的子类的方法QComboBox
,QTreeWidgetItem
包含QComboBox
与设置QComboBox
) 的父级有关。
我理解 10 次中有 9 次运行时错误是由于未构造基类所致。但是排除了这一点,错误怎么会发生呢?可能是因为没有引用正确的父母吗?
编辑
我正在使用Qcombobox发出新的组合选择来发出信号。在进行新选择时,它将选择的值添加到 PyXB XML 节点。有趣的是,仅当我将值附加到 PyXB 类绑定中,将信息永久存储在 XML 文件中时,才会出现此问题。换句话说,如果代码的那部分没有运行,我不会收到错误 - 只有当代码运行 PyXB 操作以将值附加到 XML 节点绑定时...