Pyside6 QAbstractTableModel – заменить логическое значение значком, выровненным по центруPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pyside6 QAbstractTableModel – заменить логическое значение значком, выровненным по центру

Сообщение Anonymous »


У меня есть класс GenericTableModel(QAbstractTableModel):, в котором я пытаюсь заменить логическое значение значками. У меня это работало, используя следующее:

if role == Qt.DecorationRole: значение = self.dataframe.iloc[index.row(), index.column()] if hasattr(value, 'dtype') и value.dtype == bool: если значение: return QIcon('static/icons/check-circle-fill.png') return QIcon("static/icons/icon_x.png") Но они были выровнены по левому краю, и мне бы хотелось, чтобы они были по центру.

Если я изменю роль на QDisplayRole, значки не будут отображаться, поскольку типом значения в это время всегда будет str. Думаю, это потому, что я неправильно понимаю эту роль.

Я добавил следующее и смог установить размер значка, но не выравнивание.

класс IconDelegate(QStyledItemDelegate): def initStyleOption(self, option, index): super().initStyleOption(опция, индекс) option.decorationSize = QSize(16, 16) # option.rect.size() Глядя на документы, я ожидаю, возможно, displayAlignment или textAlignment, но они кажутся недействительными.

Я подозреваю, что это основано на двух недоразумениях. Я думаю, что DecorationRole всегда предназначен для украшения левой части ячейки, и если я смогу получить правильную роль, это может сработать?

В любом случае, если кто-нибудь предложит мне помощь, я буду благодарен. Спасибо
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»