如何使 QStandardItemModel 中的图标居中?

Posted

技术标签:

【中文标题】如何使 QStandardItemModel 中的图标居中?【英文标题】:How to center an icon in QStandardItemModel? 【发布时间】:2015-03-03 13:23:47 【问题描述】:
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)

图标显示良好,但未居中。

【问题讨论】:

【参考方案1】:

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

    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)

【讨论】:

以上是关于如何使 QStandardItemModel 中的图标居中?的主要内容,如果未能解决你的问题,请参考以下文章

如何调整 QTreeView 和 QStandardItemModel 中的行大小?

如何使用qstandarditemmodel获取qtableview中的数据

如何从函数传递 QStandardItemModel?

如何复制 - 将 QStandardItemModel 创建的 QTableView 中的多个项目粘贴到文本/excel 文件中?

Qt中QStandardItemModel中的重复行

Qtableview 中的 QStandardItemModel