crossplatform.ru

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


  Ответ в Размер tab'a у QTabBar по ширине текста
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
zaytsewa Дата 19.8.2011, 14:09
 
Цитата(hoRUS @ 18.8.2011, 16:58) *
Как-то сложно. Не пробовали QFontMetrics?
return fontMetrics().boundingRect( tabText(indx) ).size();

возвращает 27 и 50 всегда...
hoRUS Дата 18.8.2011, 15:58
  Как-то сложно. Не пробовали QFontMetrics?
return fontMetrics().boundingRect( tabText(indx) ).size();

Заменить все тело функции на что-то типа этого?
zaytsewa Дата 17.8.2011, 16:19
  Всем привет!
Необходимо сделать так, чтобы размер вкладки сжимался по ширине содержимого( т.е. текста вкладки )
У QTabBar есть виртуальный метод virtual QSize tabSizeHint ( int index ) const
переопределяю так
QSize TabBar::tabSizeHint( int indx ) const
{
    QTextOption option( Qt::AlignJustify | Qt::AlignHCenter );
    option.setWrapMode ( QTextOption::WordWrap );
    QPainter painter;
    QString text = tabText( indx );
    QRectF rect1 = tabRect( indx );
    QRectF bounding;
    bounding = painter.boundingRect( rect1, text, option );
    QRect rect = bounding.toRect();
    QSize s( rect.width(), rect.height());
    return s;
}


В итоге rect всегда нулевой и возвращается нулевой размер
что я делаю неправильно?
заранее спасибо :)
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 11:35