如何验证QTableWidget中的单元格?

时间:2016-06-03 19:06:29

标签: python-3.x pyqt4 qtablewidget

我在pyqt4中使用python3.4我想验证单元格中的文本在引入时是否为浮点数。我是怎么做到的?

1 个答案:

答案 0 :(得分:2)

您有两种选择。

您可以创建QItemDelegate并覆盖createEditorsetEditorDatasetModelData来控制他们所呈现的小部件以编辑数据。如果您愿意,可以使用验证器创建QLineEdit,但如果他们只能输入一个数字,您应该只使用QSpinBoxQDoubleSpinBox,它只允许整数和彩车。或者,您可以让他们输入他们想要的任何内容,然后在setModelData函数中忽略任何输入的无效数值。

class MyDelegate(QtGui.QItemDelegate):

    def createEditor(self, parent, option, index):
        return QtGui.QSpinBox(parent)


delegate = MyDelegate()
table.setItemDelegate(delegate)

或者,如果表中的项目已经有数字,则稍微简单一点,只需为项目的EditData角色分配一个整数或浮点数。 Qt会注意到类类型并自动为您构建QSpinBoxQDoubleSpinBox

item = QTableWidgetItem()
item.setData(QtCore.Qt.EditRole, 5)