【发布时间】:2019-04-10 06:55:33
【问题描述】:
使用 PyQt5 将编辑器委托设置为 QDoubleSpinBox:
class MoneyDelegate(QStyledItemDelegate):
def initStyleOption(self, option, index):
super(MoneyDelegate, self).initStyleOption(option, index)
val = float(index.data())
option.text = '${:,.2f}'.format(val)
option.displayAlignment = Qt.AlignVCenter | Qt.AlignRight
def createEditor(self, QWidget, QStyleOptionViewItem, QModelIndex):
super(MoneyDelegate, self).createEditor(QWidget, QStyleOptionViewItem, QModelIndex)
editor = QDoubleSpinBox(self)
editor.setMinimum(.01)
editor.setMaximum(999999.99)
return(editor)
在我的 QTableWidget 类中:
self.tbl_View.setItemDelegateForColumn(2, MoneyDelegate(self))
我遇到的问题是编辑器作为单独的对话框显示在屏幕的左上角。我在这里错过了什么?
【问题讨论】:
标签: python python-3.x pyqt pyqt5