Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: mal от Декабрь 18, 2007, 13:02



Название: [4.3.2] TabWidget и размеры иконок на закладках
Отправлено: mal от Декабрь 18, 2007, 13:02
Столкнулся с такой проблемой: в дизайнере скомпоновал TabWidget, назначил на закладки иконки из ресурсов. Размеры иконок 32х32. Работаю в 2003-й студии. В самом дизайнере и preview иконки выглядят размером 16х16.
При старте TabWidget  распухает - иконки на закладках 32x32.
Пробовал в конструкторе TabWidget уменьшать размер иконок методом setIconSize -  (24х24) и (16х16)  - эффект никакой. Пробовал создавать айконы и грузить их принудительно - айконы грузятся, но размер остается прежним.
Полез в исходники :
/*!
    \property QTabWidget::iconSize
    \brief The size for icons in the tab bar
    \since 4.2

    The default value is style-dependent. This is the maximum size
    that the icons will have. Icons are not scaled up if they are of
    smaller size.

    \sa QTabBar::iconSize
*/

из чего видим, что TabWidget не масштабирует айконы в большую сторону, но уменьшать то могёт.
Однако этого не делает.

Кто нить боролся с этим эффектом?

ЗЫ плодить айконы-пиксмапы в ресурсах не хотелось бы


Название: Re: Qt 4.3.2 - TabWidget и размеры иконок на закладках
Отправлено: mal от Декабрь 18, 2007, 14:22
Как водится расковырял ответ опытным путем.
Значит до тех пор пока окно не создано и не visible - функция  QTabWidget::setIconSize не отрабатывает корректно.
Когда окно открыто - функция корректно отрабатывает.
Такая вот загогулина.
В сорсах про такое поведение ни слова нет...
Всем , как водится, спасибо за внимание!  ;-)


Название: Re: Qt 4.3.2 - TabWidget и размеры иконок на закладках
Отправлено: ритт от Декабрь 18, 2007, 18:32
то есть, как это "не создано и не видимо"?
"айконы" - это QIcon?
какой стиль оформления юзаешь? прокси-стили? стайлшиты?


Название: Re: Qt 4.3.2 - TabWidget и размеры иконок на закладках
Отправлено: mal от Декабрь 21, 2007, 21:47
Имел ввиду следующее: если я модифицирую размер айконов в конструкторе своего класса указанными мной методами - то изменения размеров не происходит.
Когда же главное окно создано (а создаваемый мной экземпляр класса содержит объект QTableWidget, на котором я моддифицирую размер айконов на закладках, помещается в QDockWidget главного окна), то после команды предположим
showMaximized()  (mainWindow стало видимым),
вызываю setIconSize() для своего класса QTableWidget - размер иконок поменялся.
Может и коряво, но вот оно щастье! ;-)
По другому задачу решить не смог.