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

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

Форум на CrossPlatform.RU _ Qt GUI _ Как задать/получить отображаемые размеры для кнопки

Автор: Sokoloff 30.8.2010, 17:37

Пишу своего наследника от QStyledItemDelegate. Понадобилось мне нарисовать кнопки, и столкнулся я с проблемой, при одном и том же заданном rect-е разные темы рисуют кнопки разного размера.

Слева oxigen справа qt-curves, размеры заданны одинаковые.

Т.е. curve делает отступы сверху и снизу, вот как можно узнать размеры этих отступов?

Автор: Litkevich Yuriy 30.8.2010, 22:15

Цитата(Sokoloff @ 30.8.2010, 21:37) *
при одном и том же заданном rect-е
а ты как этот прямоугольник берёшь? Из QStyleOption?

Автор: Sokoloff 30.8.2010, 23:57

Цитата(Litkevich Yuriy @ 30.8.2010, 23:15) *
Цитата(Sokoloff @ 30.8.2010, 21:37) *
при одном и том же заданном rect-е
а ты как этот прямоугольник берёшь? Из QStyleOption?


Я его не беру из QStyleOption я его туда задаю:) Прямоугольник рассчитывается из высоты строки текста, а потом я рисую кнопку. Проблема в том, что высота кнопки это высота серой плашки + тень от кнопки + поля. Так вот последние зависят от темы. И видимая высота кнопки соответственно меняется.

Ладно, проблему я не решил, но снял. Тупо использую картинки вместо кнопок, хотя это и не эстетично, зато дешево, надежно и практично.

Автор: Litkevich Yuriy 31.8.2010, 7:29

вообще этот делегат довольно навёрнутый внутри.
Троли используют для инициализации QStyleOption много разных версий QStyleOptionViewItem* (например, QStyleOptionViewItemV4) в каждой версии видимо свои возможности. И всегда учитывают стиль виджета

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