Не правильно работает делегатор (не могу импортировать из Qt EditRole
Пытаюсь создать делегатор для таблицы, чтобы можно было вводить только цифры. Не могу понять, почему я не могу использовать EditRole из Qt. Может он был убран или переименован в 6 версии?
from PyQt6.QtWidgets import QStyledItemDelegate, QLineEdit
from PyQt6.QtCore import QRegularExpression, Qt
from PyQt6.QtGui import QRegularExpressionValidator
#делегат для числовых значений
class NumericDelegate(QStyledItemDelegate):
def createEditor(self, parent, option, index):
editor = super(NumericDelegate, self).createEditor(parent, option, index)
if isinstance(editor, QLineEdit):
reg_ex = QRegularExpression("[0-9]+\.?[0-9]{,2}")
validator = QRegularExpressionValidator(reg_ex, editor)
editor.setValidator(validator)
return editor
def setEditorData(self, editor, index):
value = index.model().data(index, Qt.EditRole)
editor.setText(str(value))
def setModelData(self, editor, model, index):
value = float(editor.text())
model.setData(index, value, Qt.EditRole)