PyQt TableView 将图标居中对齐

PyQt TableView align Icons to Center

我有一个带图标的 QTableView,这些图标默认显示为左对齐,而我想将它们居中对齐。从 Qt 文档中,对齐仅发生在 Qt.role 下的 TextAlignment 中,仅具有 Qt.DisplayRole().

的作用

如何将带有 Qt.DecorationRole() 的图标的排列设置为居中。

一种可能的解决方案是使用委托:

class IconDelegate(QtWidgets.QStyledItemDelegate):
    def initStyleOption(self, option, index):
        super().initStyleOption(option, index)
        option.decorationSize = option.rect.size()
delegate = IconDelegate(tableview)
tableview.setItemDelegate(delegate)