我在程序中使用PySide2和QTableView以及QStandardItemModel(称为resourcesModel的对象)。当我使用以下代码创建、填充项目并将其放入表中时:
item = QStandardItem()
item.setData(123123, Qt.EditRole)
resourcesModel.setItem(1, 1, item)
当我双击包含该值的单元格时,它会提供一个框来编辑数据,我可以将字母放入其中。我期望的行为是有一个QSpinBox,这样只有数字可以放在那里
此代码:
item = QStandardItem()
item.setData(0.25, Qt.EditRole)
resourcesModel.setItem(1, 1, item)
按预期,双击单元格后显示QDoubleSpinBox。PyQt5中的这两个代码都提供了预期的Spinbox
当输入的值只是一个整数时,为什么QStandardItem不提供QSpinBox?不编写自定义委托就可以绕过此问题吗
谢谢你的回答
说明:
PyTr2在C++中将Python转换为LongLong(qVal::LangLon=4),默认情况下,它不被默认QITEMEdEdWorkFrand处理,使用了^ {< CD1>}(在PyQt被转换为QMeta Type::int=2)。p>
解决方案:
一种可能的解决方案是创建一个自定义QItemEditorFactory,返回适当的小部件:
相关问题 更多 >
编程相关推荐