簡體   English   中英

QTreeWidgetItem的PyQt運行時錯誤

[英]PyQt Runtime Error of QTreeWidgetItem

當底層的C / C ++對象被刪除時,我試圖避免眾所周知的PyQt運行時錯誤:

http://www.riverbankcomputing.com/pipermail/pyqt/20​​09-April/022809.html

PyQt4-“ RuntimeError:基礎C / C對象已被刪除”

PyQt4嵌套類-“ RuntimeError:基礎C / C ++對象已被刪除”

PyQt:RuntimeError:包裝的C / C ++對象已被刪除

我的每個子類都調用super()方法,因此正確地構造了基類。

不過,我得到這個錯誤,我想知道如果是由於這樣的事實,我加入一個QComboBox控件到QTreeWidgetItem (使用setItemWidget()一個方法QTreeWidget ),但我不能設置父為QTreeWidgetItem包含它。 當我嘗試時,出現以下錯誤:

TypeError: QComboBox(QWidget parent=None): argument 1 has unexpected type 'QTreeWidgetItem'

當然,我可以在構造函數中省略父級,也可以將QTreeWidget作為父級傳遞,但是我認為我需要引用正確的父級。

我已經將QComboBox進行了子類化,並且在我的子類中它對QTreeWidget進行了一些基本操作,但是一旦我進入子類QComboBox的方法,就會刪除包含QComboBox的父QTreeWidgetItem的基礎C對象(這就是為什么我我認為這與設置QComboBox的父級有關。

我了解10次中有9次運行時錯誤是由於未構造基類而引起的。 但是,如果排除了該錯誤,該錯誤還會如何發生? 可能是由於未引用正確的父母嗎?

編輯

我正在使用QComboBox發出何時選擇新的組合框的信號。 進行新選擇后,它將選擇的值添加到PyXB XML節點。 有趣的是,僅當我將值附加到將信息永久存儲在XML文件中的PyXB類綁定中時,才會發生此問題。 換句話說,如果代碼的那部分沒有運行,我不會得到錯誤-僅當代碼運行將值附加到XML節點綁定的PyXB操作時,才會出現此錯誤...

我通常會避免此類錯誤,因為此類錯誤會在類上保留對所有容易被刪除的對象(例如QComboBox的引用,因此在創建它時,請嘗試使用諸如self.comboBoxHolder = QComboBox(...)東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM