PyQt4 QStandardItem需要setInputMas

2024-10-06 15:16:08 发布

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

我有一个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) )

Tags: 数据方法selfmodeltableitem表格单元
1条回答
网友
1楼 · 发布于 2024-10-06 15:16:08

您可以通过对^{}进行子分类来创建自定义Item 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

用法:

^{pr2}$

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

相同的解决方案适用于QTableWidget。在

相关问题 更多 >