Я использую PySide2 и QTableView с QStandardItemModel (объект с именем resourcesModel) в моей программе. Когда я использую следующий код для создания, заполнения и помещения элемента в таблицу:
item = QStandardItem()
item.setData(123123, Qt.EditRole)
resourcesModel.setItem(1, 1, item)
, когда я дважды щелкаю ячейку, содержащую это значение, появляется поле для редактирования данных, которое я можно положить буквы в. Мое ожидаемое поведение - иметь QSpinBox, чтобы туда могли помещаться только цифры.
Этот код:
item = QStandardItem()
item.setData(0.25, Qt.EditRole)
resourcesModel.setItem(1, 1, item)
представляет QDoubleSpinBox после двойного щелчка по ячейке, как и ожидалось. Оба этих кода в PyQt5 предоставляют спинбоксы, как и ожидалось.
Почему QStandardItem не предоставляет QSpinBox, когда введенное значение является просто целым числом? Можно ли обойти это без написания специального делегата?
Спасибо за все ваши ответы.