crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> каскадные таблицы стилей и собственный виджет
fantom
  опции профиля:
сообщение 29.1.2009, 16:55
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 47
Регистрация: 29.1.2009
Пользователь №: 515

Спасибо сказали: 1 раз(а)




Репутация:   1  


Делаю свой элемент который интегрируется в qt дизайнер. У этого элемента есть свойство перечисляемого типа. Каждое значение этого свойства идентифицирует уникальное цветовое отображение для этого виджета. При чем для разных экземпляров этого элемента в соответствии значнию свойства могут быть разные цветовые оттенки.
Для этих целей целесобразно применить Qt Style Sheet. То есть в значении свойства styleSheet для каждого элемента задавать определенные псевдосостояния и по ним выставлять цветовой оттенок.

Например что то вроде этого:
MyElement:state1 { color: white }
MyElement:state2{ color: red }
MyElement:state2{ color: blue }


Только в документации про работу с css разметкой для отображения своего виджета я толком ничего не нашел.
И еще не очень ясно могу ли я вообще реализовывать свои псевдо-состояния? Основная проблема как раз с ними. Что вообще такое псевдо состояние на языке c++/qt? Как их идентифицировать и переопределять в коде? А так же как их привязать к свойствам или сигналам объекта?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
fantom
  опции профиля:
сообщение 29.1.2009, 17:54
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 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 прописать так:

QToolButton {
            color: black;
        
            border-image: url(:/images/The grey button.png);
         }
QToolButton::checked {
            color: white;
            border-image: url(:/images/The dark blue button.png);
         }

В итоге когда кнопка нажата она использует одно отображение, когда нажата другое.
Я же хочу сделать свой элемент который умел бы почти то же самое, только бы использовал мои псевдостояния. Хотя на крайняк можно было и обрабатывать имеющиеся.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


8 чел. читают эту тему (гостей: 8, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 8.1.2025, 17:50