Is that what you wanted?
tree.png
void ProgressBarDelegate
::paint( QPainter* painter,
const QStyleOptionViewItem
& option,
const QModelIndex
& index
) const {
if( index.column() == 1 )
{
if( option.
state & QStyle::State_Selected ) {
painter->fillRect( option.rect, option.palette.highlight() );
}
int progress = index.data().toInt();
progressBarOption.rect = option.rect;
progressBarOption.rect.setTop( option.rect.top() + 1 );
progressBarOption.rect.setHeight( option.rect.height() - 2 );
progressBarOption.minimum = 0;
progressBarOption.maximum = 100;
progressBarOption.progress = progress;
progressBarOption.
text = QString::number(progress
) + "%";
progressBarOption.textVisible = true;
progressBarOption.textAlignment = Qt::AlignCenter;
}
else
{
QStyledItemDelegate::paint(painter, option, index);
}
}
void ProgressBarDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const
{
if( index.column() == 1 )
{
if( option.state & QStyle::State_Selected )
{
painter->fillRect( option.rect, option.palette.highlight() );
}
int progress = index.data().toInt();
QStyleOptionProgressBar progressBarOption;
progressBarOption.rect = option.rect;
progressBarOption.rect.setTop( option.rect.top() + 1 );
progressBarOption.rect.setHeight( option.rect.height() - 2 );
progressBarOption.minimum = 0;
progressBarOption.maximum = 100;
progressBarOption.progress = progress;
progressBarOption.text = QString::number(progress) + "%";
progressBarOption.textVisible = true;
progressBarOption.textAlignment = Qt::AlignCenter;
QApplication::style()->drawControl(QStyle::CE_ProgressBar, &progressBarOption, painter);
}
else
{
QStyledItemDelegate::paint(painter, option, index);
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks