Для управления положением значка и текста необходимо использовать делегата, в этом случае я использую QStyledItemDelegate
и перезаписываю метод initStyleOption()
:
aligndelegate.h
#ifndef ALIGNDELEGATE_H
#define ALIGNDELEGATE_H
#include <QStyledItemDelegate>
class AlignDelegate: public QStyledItemDelegate{
public:
using QStyledItemDelegate::QStyledItemDelegate;
protected:
void initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const override
{
QStyledItemDelegate::initStyleOption(option, index);
option->decorationPosition = QStyleOptionViewItem::Right;
}
};
#endif // ALIGNDELEGATE_H
Тогда в делегате устанавливается:
AlignDelegate *delegate = new AlignDelegate(ui->tableWidget);
ui->tableWidget->setItemDelegate(delegate);
QTableWidgetItem *item = new QTableWidgetItem("foo text");
item->setIcon(icon);
ui->tableWidget->setItem(i, j, item);