Название: [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 - размер иконок поменялся. Может и коряво, но вот оно щастье! ;-) По другому задачу решить не смог. |