QTableVi中的PyQt5双spinbox

2024-04-25 19:45:54 发布

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

使用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类中:

^{pr2}$

我遇到的问题是编辑器在屏幕的左上角显示为一个单独的对话框。我错过了什么?在


Tags: selfindexdefval编辑器qteditoroption
1条回答
网友
1楼 · 发布于 2024-04-25 19:45:54

不要使用QWidgetQStyleOptionViewItem和{}作为函数参数的名称,因为它们是类的名称,而您正在混淆它们。另一方面,您必须作为编辑器的父级传递给^{}的第一个参数:

def createEditor(self, parent, option, index):
    editor = QDoubleSpinBox(parent)
    editor.setMinimum(.01)
    editor.setMaximum(999999.99)
    return editor

相关问题 更多 >