crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Размер tab'a у QTabBar по ширине текста, QTabBar tab Justify
zaytsewa
  опции профиля:
сообщение 17.8.2011, 16:19
Сообщение #1


Студент
*

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

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




Репутация:   0  


Всем привет!
Необходимо сделать так, чтобы размер вкладки сжимался по ширине содержимого( т.е. текста вкладки )
У 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 всегда нулевой и возвращается нулевой размер
что я делаю неправильно?
заранее спасибо :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
hoRUS
  опции профиля:
сообщение 18.8.2011, 15:58
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 30
Регистрация: 10.7.2008
Из: Москва
Пользователь №: 231

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




Репутация:   0  


Как-то сложно. Не пробовали QFontMetrics?
return fontMetrics().boundingRect( tabText(indx) ).size();

Заменить все тело функции на что-то типа этого?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zaytsewa
  опции профиля:
сообщение 19.8.2011, 14:09
Сообщение #3


Студент
*

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

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




Репутация:   0  


Цитата(hoRUS @ 18.8.2011, 16:58) *
Как-то сложно. Не пробовали QFontMetrics?
return fontMetrics().boundingRect( tabText(indx) ).size();

возвращает 27 и 50 всегда...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 21.12.2024, 18:10