каскадные таблицы стилей и собственный виджет |
Здравствуйте, гость ( Вход | Регистрация )
каскадные таблицы стилей и собственный виджет |
fantom |
29.1.2009, 16:55
Сообщение
#1
|
Студент Группа: Участник Сообщений: 47 Регистрация: 29.1.2009 Пользователь №: 515 Спасибо сказали: 1 раз(а) Репутация: 1 |
Делаю свой элемент который интегрируется в qt дизайнер. У этого элемента есть свойство перечисляемого типа. Каждое значение этого свойства идентифицирует уникальное цветовое отображение для этого виджета. При чем для разных экземпляров этого элемента в соответствии значнию свойства могут быть разные цветовые оттенки.
Для этих целей целесобразно применить Qt Style Sheet. То есть в значении свойства styleSheet для каждого элемента задавать определенные псевдосостояния и по ним выставлять цветовой оттенок. Например что то вроде этого:
Только в документации про работу с css разметкой для отображения своего виджета я толком ничего не нашел. И еще не очень ясно могу ли я вообще реализовывать свои псевдо-состояния? Основная проблема как раз с ними. Что вообще такое псевдо состояние на языке c++/qt? Как их идентифицировать и переопределять в коде? А так же как их привязать к свойствам или сигналам объекта? |
|
|
ViGOur |
29.1.2009, 17:28
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Только в документации про работу с css разметкой для отображения своего виджета я толком ничего не нашел. Это смотрел? Таблицы стилей QtИ еще не очень ясно могу ли я вообще реализовывать свои псевдо-состояния? Не понял, что это такое?
|
|
|
fantom |
29.1.2009, 17:54
Сообщение
#3
|
Студент Группа: Участник Сообщений: 47 Регистрация: 29.1.2009 Пользователь №: 515 Спасибо сказали: 1 раз(а) Репутация: 1 |
Цитата Не понял, что это такое? Selectors may contain pseudo-states that denote that restrict the application of the rule based on the widget's state. Pseudo-states appear at the end of the selector, with a colon ( : ) in between. For example, the following rule applies when the mouse hovers over a QPushButton: QPushButton:hover { color: white } Да этот документ я смотрел. Но там информация по оформлению готовых виджетов встроенных в QT. Там вообщем все ясно (хотя не исключаю что мог что пропустить). Мне же необходимо сделать свой элемент который будет использовать оформление прописанное в свойстве styleSheet. Например для объекта QToolButton можно в styleSheet прописать так:
В итоге когда кнопка нажата она использует одно отображение, когда нажата другое. Я же хочу сделать свой элемент который умел бы почти то же самое, только бы использовал мои псевдостояния. Хотя на крайняк можно было и обрабатывать имеющиеся. |
|
|
Litkevich Yuriy |
29.1.2009, 20:21
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
fantom, у тебя какая версия Qt?
в 4.4.3 есть возможность создавать динамические свойства в дизайнере. Правда я не разбирался, т.к. дизайнером редко пользуюсь. Но может это окажется подходящим для тебя. |
|
|
fantom |
30.1.2009, 11:00
Сообщение
#5
|
Студент Группа: Участник Сообщений: 47 Регистрация: 29.1.2009 Пользователь №: 515 Спасибо сказали: 1 раз(а) Репутация: 1 |
И они будут сохранятся в ui файле? Не знал..
Вот только версия qt у меня 4.3.2 и от этого пока никуда не деться. Хотя возможность и правда очень интересная. Но все равно для моих целей css стили были бы немного лучшим решением. Так как используется градиентная заливка. Что неужели никто не создавал свои элементы с поддержкой оформление через css? |
|
|
fantom |
2.2.2009, 17:45
Сообщение
#6
|
Студент Группа: Участник Сообщений: 47 Регистрация: 29.1.2009 Пользователь №: 515 Спасибо сказали: 1 раз(а) Репутация: 1 |
То есть как я понимаю вопрос создания собственных виджетов с возможностью использования стилей на сегодняшний день остается не решенным?
|
|
|
Litkevich Yuriy |
2.2.2009, 18:12
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
ViGOur |
2.2.2009, 21:14
Сообщение
#8
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
То есть как я понимаю вопрос создания собственных виджетов с возможностью использования стилей на сегодняшний день остается не решенным? Очень даже решен, я видел ребята полностью с использованием стилей пишут игрушку, разумеется кроме 3D. С помощью стилей можно превратить банальный диалог с кнопочками и списком в HTML страничку с рюшечками и прочим... |
|
|
fantom |
3.2.2009, 16:30
Сообщение
#9
|
Студент Группа: Участник Сообщений: 47 Регистрация: 29.1.2009 Пользователь №: 515 Спасибо сказали: 1 раз(а) Репутация: 1 |
Имеется ввиду они стилизируют стандартные qt-шные виджеты? Если да то тут все просто. А если они создают свои виджеты с нуля и программируют их на пооддержку стилей то я бы хотел поинтересоваться как? Единственное что я смог так из ксс обращаться к любым свойствам объектов и менять их.
|
|
|
Litkevich Yuriy |
3.2.2009, 17:29
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
А если они создают свои виджеты с нуля и программируют их на пооддержку стилей то я бы хотел поинтересоваться как? может ответы на это можно найти в руководстве: Implementing Styles and Style Aware Widgets?
|
|
|
Текстовая версия | Сейчас: 6.1.2025, 6:00 |