crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Тема закрытаНачать новую тему
> QComboBox и дополнение точками
Majestio
  опции профиля:
сообщение 14.3.2013, 13:53
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 67
Регистрация: 13.2.2013
Пользователь №: 3710

Спасибо сказали: 1 раз(а)




Репутация:   1  


Есть QComboBox. Заполнен несколькими значениями, при этом часть значений достаточно большой длины. Как сделать так, чтобы выбранное значение не обрезалось по размеру, а подгонялось обрезанием и дополнением "..."?

Цитата(Majestio @ 14.3.2013, 13:28) *
Есть QComboBox. Заполнен несколькими значениями, при этом часть значений достаточно большой длины. Как сделать так, чтобы выбранное значение не обрезалось по размеру, а подгонялось обрезанием и дополнением "..."?


:rolleyes: Вопрос снят, раскопал. См. Qt::TextElideMode

Написал примерчик работающего кода:
void MComboCheckBox::paintEvent(QPaintEvent *)
{
    updateText(this);
    QStylePainter painter(this);
    painter.setPen(palette().color(QPalette::Text));
    QStyleOptionComboBox opt;
    initStyleOption(&opt);
    opt.currentText = (DrawText == "") ? tr("...") : DrawText;
    QRect textRect = style()->subControlRect(QStyle::CC_ComboBox, &opt, QStyle::SC_ComboBoxEditField, this);
    opt.currentText = opt.fontMetrics.elidedText(opt.currentText, Qt::ElideMiddle, textRect.width());
    painter.drawComplexControl(QStyle::CC_ComboBox, opt);
    painter.drawControl(QStyle::CE_ComboBoxLabel, opt);
}


В примере "..." ставятся в середине строки.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Тема закрытаНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.11.2024, 14:27