Russian Qt Forum
Ноябрь 25, 2024, 20:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [4.3.2] TabWidget и размеры иконок на закладках  (Прочитано 4551 раз)
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 не масштабирует айконы в большую сторону, но уменьшать то могёт.
Однако этого не делает.

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

ЗЫ плодить айконы-пиксмапы в ресурсах не хотелось бы
« Последнее редактирование: Декабрь 23, 2007, 09:23 от xep » Записан
mal
Гость
« Ответ #1 : Декабрь 18, 2007, 14:22 »

Как водится расковырял ответ опытным путем.
Значит до тех пор пока окно не создано и не visible - функция  QTabWidget::setIconSize не отрабатывает корректно.
Когда окно открыто - функция корректно отрабатывает.
Такая вот загогулина.
В сорсах про такое поведение ни слова нет...
Всем , как водится, спасибо за внимание!  ;-)
Записан
ритт
Гость
« Ответ #2 : Декабрь 18, 2007, 18:32 »

то есть, как это "не создано и не видимо"?
"айконы" - это QIcon?
какой стиль оформления юзаешь? прокси-стили? стайлшиты?
Записан
mal
Гость
« Ответ #3 : Декабрь 21, 2007, 21:47 »

Имел ввиду следующее: если я модифицирую размер айконов в конструкторе своего класса указанными мной методами - то изменения размеров не происходит.
Когда же главное окно создано (а создаваемый мной экземпляр класса содержит объект QTableWidget, на котором я моддифицирую размер айконов на закладках, помещается в QDockWidget главного окна), то после команды предположим
showMaximized()  (mainWindow стало видимым),
вызываю setIconSize() для своего класса QTableWidget - размер иконок поменялся.
Может и коряво, но вот оно щастье! ;-)
По другому задачу решить не смог.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.171 секунд. Запросов: 21.