gpt4 book ai didi

python - PyQt4 QStandardItem 需要setInputMask

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:02 26 4
gpt4 key购买 nike

我有一个 QTreeView(100 行)和 QStandardItemModel(10 列)
每个表格单元格都有作为 QStandardItem
插入的数据在第二列中,我需要以下掩码“0-00-00-0-0000”,但 QStandardItem 没有可用的 setInputMask("0-00-00-0-0000") 方法。
我该怎么做,是否有更好的方法来完成这项工作,也许是使用 QTableWidget?

self.model = QStandardItemModel(self)
self.model.setHorizontalHeaderLabels(header)

self.table = QTreeView()
self.table.setModel(self.model)

row=[]
for item in items:
row.append( QStandardItem(item) )

最佳答案

您可以通过子类化 QItemDelegate 创建自定义 Item Delegate这将创建带掩码的编辑器,然后使用 setItemDelegateForColumn

委托(delegate)类:

class MaskInputDelegate(QItemDelegate):

def __init__(self, mask, parent=None):
QItemDelegate.__init__(self, parent)
self._mask = mask

def createEditor(self, parent, option, index):
editor = QLineEdit(parent)
editor.setInputMask(self._mask)
return editor

用法:

self.table.setItemDelegateForColumn(1, MaskInputDelegate('0-00-00-0-0000'))

Is there a better way of getting this done, maybe with QTableWidget?

同样的解决方案适用于 QTableWidget

关于python - PyQt4 QStandardItem 需要setInputMask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8795600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com