正在将本机Python类型注册到PySide QItemEditorFactory

2024-10-03 23:21:31 发布

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

PySide.QtGui.QItemEditorFactory.registerEditor(type, creator)documentation表示typePySide.QtCore.QVariant::Type。但这个page说明了这一点

When a method expects a QVariant::Type the programmer can use a string (the type name) or the type itself.

我有颜色的例子,我已经注册了QtGui.q颜色使用编辑器创建者factory.registerEditor(QtGui.QColor, ColorEditorCreator()),但是我不能让任何非Qt类型工作。当我提供类型时,工厂返回默认的文本编辑器。在

向自定义编辑器创建者注册python本机类型或python类的语法是什么?在

factory.registerEditor(type(list), ListEditorCreator())

谢谢


更新

下面是一个代码示例,它启动一个3行表,每个值都注册到同一个编辑器和编辑器创建者。编辑器是一个QLineEdit,但实际上没有编辑。我的问题是,当我双击str和QVector3D值时,item editor工厂调用创建者,QLineEdit明显激活(并调用print("createWidget"))。在

当我双击列表值时,没有QLineEdit激活,也没有调用print语句。为什么?在

^{pr2}$

Tags: the类型颜色factory工厂type编辑器创建者