setItemDelegateForColunm()在没有s的情况下使应用程序崩溃

2024-10-01 04:46:23 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:

在树上设置每行或每列的QtstyledItemDelegate时,我的应用程序在没有任何进一步信息的情况下崩溃。尽管如此,为整个TreeView作品设置了一个QStyledItemDelegate,这在我看来似乎很奇怪。在

有人知道这是一个已知的错误,还是我遗漏了什么

我使用的是pyside1.1.2和qt4.8(更改版本不是一个真正的选择,因为它是一个分布式应用程序,它也运行在一个集群上,其中版本更新将包括大量开销…)

这里是一个“最小运行示例”

from PySide import QtGui, QtCore
import sys
import easymodel

class MainWin(QtGui.QMainWindow):
    def __init__(self, model, parent=None):
        super(MainWin, self).__init__(parent)

        treeview = QtGui.QTreeView()
        treeview.setItemDelegateForColumn(0,QtGui.QStyledItemDelegate()) 
        treeview.setModel(model)
        self.setCentralWidget(treeview)


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    root = easymodel.TreeItem(easymodel.ListItemData(["Test","Values","Perhabs a button"]))
    model = easymodel.TreeModel(root)    
    for i in range(1,10):
        easymodel.TreeItem(easymodel.ListItemData(["Test","Values","Perhabs a button"]),
                           parent = root,
                           index=model.index(root.child_count(),1,
                                             parent = root.index()))    


mainWin = MainWin(model)
mainWin.show()
sys.exit(app.exec_())

作为模型,我使用的是github(Easymodel)上提供的storax的easymodel,并带有一些扩展。为了完整起见,我使用的模型是:

^{2}$

提前谢谢


Tags: importself版本appindexmodelinitsys
1条回答
网友
1楼 · 发布于 2024-10-01 04:46:23

您需要保留对委托的引用:

    self.delegate = QtGui.QStyledItemDelegate()
    treeview.setItemDelegateForColumn(0, self.delegate)

或者给它一个家长:

^{pr2}$

相关问题 更多 >