Qt 如何在QStandarItemModel中居中放置图标?

Qt 如何在QStandarItemModel中居中放置图标?,qt,pyqt4,pyqt5,Qt,Pyqt4,Pyqt5,图标显示良好,但没有居中。我找到了使用QStyledItemDelegate的解决方案 def data(self, index, role): if role == Qt.DecorationRole: if index.column() == 0: return QApplication.style().standardIcon(QStyle.SP_DialogYesButton if self.item(index.row()).valid

图标显示良好,但没有居中。

我找到了使用QStyledItemDelegate的解决方案

def data(self, index, role):
    if role == Qt.DecorationRole:
        if index.column() == 0:
            return QApplication.style().standardIcon(QStyle.SP_DialogYesButton if self.item(index.row()).valid else QStyle.SP_DialogNoButton)
    elif role == Qt.TextAlignmentRole:
        if index.column() == 0:
            return QVariant(Qt.AlignCenter | Qt.AlignVCenter)
    def paint(self, painter, option, index):
        QStyledItemDelegate.paint(self, painter, option, index)
        QApplication.style().standardIcon(QStyle.SP_DialogYesButton if index.data().valid else QStyle.SP_DialogNoButton).paint(painter, option.rect)