Russian Qt Forum
Сентябрь 29, 2024, 20:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Рисование в делегате: Размещение текста по центру ячейки  (Прочитано 2894 раз)
VAP
Гость
« : Май 05, 2010, 20:21 »

Доброго времени суток!
Прошу подсказки как разместить текст в делегате строго по центру ячейки. У меня рисуется немного левее центра.
[code cpp]
void ScaleItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
                                          const QModelIndex &index) const
{
    if (!index.isValid())
        return;
 
    int data = index.data(Qt::DisplayRole).toInt();
    QString  text = index.data(Qt::DisplayRole).toString();
    QSize sh = sizeHint(option, index);
    QFontMetrics fm = option.fontMetrics;

    if (data == 0)
        QPixmap pm(":images/red.png");
        painter->drawPixmap(option.rect, pm);
        /*в таком варианте рисуется в верхнем левом углу
        painter->drawText(QRect(option.rect.x(), option.rect.y(), sh.width(), sh.height()),     
        Qt::AlignCenter, elidedText(fm, sh.width(), Qt::ElideMiddle, text));
        */
        /*нашел на форуме, но рисуется не строго по центру*/
        painter->drawText(option.rect, QString("%1").arg(text), QTextOption(Qt::AlignCenter));
}
[/code cpp]
Записан
VAP
Гость
« Ответ #1 : Май 06, 2010, 19:27 »

Ради интереса попробовал в версии Qt 4.3.0 и получил идеальный результат:


А в Qt 4.5.0 получается вот так:


Мелочь, но не приятная, однако.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.152 секунд. Запросов: 21.