我有一个使用
问题:在委托中,
当初始化
我从PyQt documentation没有找到太多帮助:
如果parent参数不是None,self将被Qt拥有而不是PyQt。重新实现自QAbstractItemDelegate.createEditor()。返回用于编辑索引指定的项以进行编辑的小部件。父窗口和样式选项用于控制编辑器小部件的外观。
请注意,这一切都是由此处解决方案评论中讨论的另一个问题的解决方案开始的。
QStandardItemModel
的QTreeView
。我正在使用自定义委托绘制/编辑数据。在createEditor
方法中,我使用parent.window()
访问整个应用程序的主窗口(请参见下面链接到另一个问题的代码)。问题:在委托中,
createEditor
的父级是什么?它定义了以下参数:def createEditor(self, parent, option, index)
当初始化
QStyledItemDelegate
并打印type(parent)
时,令人困惑的是我会得到树形结构(我已经让这个委托显示了这棵树)。这是我所期望的。然而,当我在createEditor
方法实现中执行相同操作并打印type(parent)
时,它只返回QWidget
。当我运行parent.metaObject().className()
时也是一样,这是我从这里得到的建议:
QT : get the class name of an object
当我尝试提取我在树状视图中定义的属性,如parent.rootItem
时,我会得到一个属性错误。那么,这里发生了什么?我的编辑器的父级是什么?我从PyQt documentation没有找到太多帮助:
如果parent参数不是None,self将被Qt拥有而不是PyQt。重新实现自QAbstractItemDelegate.createEditor()。返回用于编辑索引指定的项以进行编辑的小部件。父窗口和样式选项用于控制编辑器小部件的外观。
请注意,这一切都是由此处解决方案评论中讨论的另一个问题的解决方案开始的。
QProxyStyle
。 - eric