Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Размер tab'a у QTabBar по ширине текста

Автор: 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 всегда нулевой и возвращается нулевой размер
что я делаю неправильно?
заранее спасибо :)

Автор: hoRUS 18.8.2011, 15:58

Как-то сложно. Не пробовали QFontMetrics?

return fontMetrics().boundingRect( tabText(indx) ).size();

Заменить все тело функции на что-то типа этого?

Автор: zaytsewa 19.8.2011, 14:09

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

возвращает 27 и 50 всегда...

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)