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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Style Sheet  (Прочитано 3839 раз)
pakulo
Гость
« : Май 10, 2007, 14:09 »

Для QTabBar и QScrollBar не создано стилей, можно ли как-то это исправить? Ну добавить свои функции...
Есть информация в каких версиях они появляться ?
Записан
goer
Гость
« Ответ #1 : Май 10, 2007, 14:45 »

Во первых, стили и листы стилей это немного разные средства для достижения одной цели - изменить внешний вид стандартных виджетов.

Во вторых, внешний вид QTabBar и QScrollBar можно поменять переопределив QStyle::drawPrimitive() (QStyle::PE_FrameTabBarBase) и QStyle::drawControl() (QStyle::CE_TabBarTab, QStyle::CE_TabBarTabLabel, QStyle::CE_ScrollBarSlider etc.)

В третьих, по поводу переопределения через листы стиле не юзал, ищи сам.

В четвертых, мне непонятна фраза "Ну добавить свои функции..." поэтому если вопрос был в другом, то сформулируй его иначе, понятнее Улыбающийся
Записан
pakulo
Гость
« Ответ #2 : Май 10, 2007, 14:54 »

Написал что в голову пришло, потому как спешил очень и хотел запостить вопрос...

2. Это понятно, я так и собирался делать.

3. Вот именно это мне и нужно, но по ходу сделать так пока не возможно. Класс QStyleSheet переопределить нельзя.

4. Все правильно понял. Я имел ввиду переопределить класс и написать свои функции для отрисовки нужных элементов.
Записан
goer
Гость
« Ответ #3 : Май 10, 2007, 15:06 »

QStyleSheet это вобще из 3-й кути чтоли? В любом случае переопределять его и не нужно.
Вообще насчет листов стилей, у меня сложилось такое впечатление что это типа скриптов (впрочем как и все в вебе) для быстренького (и соотвествено поверхностного) решения задачи.


Цитировать
Я имел ввиду переопределить класс и написать свои функции для отрисовки нужных элементов.


Если есть время, то лучше потрать его на изучение стилей. Переопределять вид виджета в paintEvet конечно можно в определенных ситуациях, но чаще - нежелательно, особенно на фоне такого мощноого средства, как QStyle.
Записан
pakulo
Гость
« Ответ #4 : Май 10, 2007, 15:16 »

Цитата: "goer"
QStyleSheet это вобще из 3-й кути чтоли? В любом случае переопределять его и не нужно.
Вообще насчет листов стилей, у меня сложилось такое впечатление что это типа скриптов (впрочем как и все в вебе) для быстренького (и соотвествено поверхностного) решения задачи.


Это класс, который унаследован от QWindowsStyle. Выполняет все тоже что и его потомок, но просто рисует элементы в зависимости от параметров которые были указаны в стилях.

я вот не знаю как поступить... нужно сделать что бы вид приложения можно было полностью изменить, хочу сделать что-то типа своего класса скин... может кто делал что-то подобное? какие есть идеи соображения?
часть делать через листы, а часть переопределяя QStyle?
Записан
goer
Гость
« Ответ #5 : Май 10, 2007, 15:32 »

Ну все зависит от того насколько сильно скины будут отличаться друг от друга. Если по типу винампа то будет достаточно даже QPalette, который ты будешь настраивать параметрически, например считвая данные из файла своей "темы", если же скин меняет к тому же и расположение виджетов на форме, то тогда видимо труднее будет сделать параметрическую настройку стиля. Хотя опять таки все зависит от свобод и ограничений которые накладываются на задачу.

Например можно написать несколько(или один) стилей которые будут принимать параметры (такие как тексутры для кнопок или размер шрифтов на виджетах) или вобще все захардкодить Улыбающийся Вообще из комбинации средств(листы стилей, стиль, спосбо настройки стилей) должно что то получится.

Некоторые математические открытия например так и были сделаны просто путем перебора всех возможных вариантов решения задачи. Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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