Необходимо использовать декомпилятор. Другие предложили JAD, существуют другие опции, JAD является лучшим.
я повторю комментарии, что можно проиграть немного по сравнению с кодом первоисточника. Это собирается выглядеть особенно забавным, если код использовал дженерики, из-за стирания.
Вы можете повлиять на положение значка по отношению к тексту с помощью параметров стиля.
Если QTableWidgetItem построен без какого-либо текста (через конструктор, который не принимает текстовый аргумент ), то элемент данных Qt :: DisplayRole не установлен, и текст не будет отображаться и не повлияет на прямоугольник отображения значков.
Я смог повлиять на положение значка QTableWidgetItem, создав подкласс QTableWidget, переопределив viewOptions и установив поле decorationAlignment параметров просмотра, например:
QStyleOptionViewItem MyTableWidget::viewOptions() const
{
QStyleOptionViewItem option = QTableWidget::viewOptions();
option.decorationAlignment = Qt::AlignHCenter | Qt::AlignCenter;
option.decorationPosition = QStyleOptionViewItem::Top;
...
return option;
}
Я думаю, что это базовое поведение QTableWidgetItem, которое не позволяет вам изменять что-либо, связанное со значком ...
Взгляните на пример «Пример звездного делегата» из Qt, может быть, вы найдете что-нибудь интересное для своей проблемы! Это небольшая работа, но вы сможете «нарисовать» ячейку по-другому, если она не содержит никакого текста!
Надеюсь, это немного поможет!
Похоже, вы должны создать подкласс QTableWidgetItem
и переписать функцию paintEvent
, в которой вы сможете рисовать значок там, где хотите.