Python PyQt4 QStandarItem需要设置输入掩码
我有一个QTreeView(100行)和QStandardItemModel(10列)Python PyQt4 QStandarItem需要设置输入掩码,python,pyqt,pyqt4,Python,Pyqt,Pyqt4,我有一个QTreeView(100行)和QStandardItemModel(10列) 每个表格单元格都有作为QStandardItem插入的数据 在第二列中,我需要以下掩码“0-00-00-0-0000”,但QStandardItem没有可用的setInputMask(“0-00-00-0-0000”)方法 我如何做到这一点,是否有更好的方法来完成这一点,也许是使用QTableWidget self.model = QStandardItemModel(self) self.model.set
每个表格单元格都有作为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) )
您可以通过子分类创建自定义
项委托
,子分类将创建带掩码的编辑器,然后使用
代表类:
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'))
有没有更好的方法来完成这个任务,也许是使用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) )
同样的解决方案适用于QTableWidget