crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> каскадные таблицы стилей и собственный виджет
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? Как их идентифицировать и переопределять в коде? А так же как их привязать к свойствам или сигналам объекта?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 29.1.2009, 17:28
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Цитата(fantom @ 29.1.2009, 16:55) *
Только в документации про работу с css разметкой для отображения своего виджета я толком ничего не нашел.
Это смотрел? Таблицы стилей Qt

Цитата(fantom @ 29.1.2009, 16:55) *
И еще не очень ясно могу ли я вообще реализовывать свои псевдо-состояния?
Не понял, что это такое?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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 прописать так:

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

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


Цитата(fantom @ 2.2.2009, 20:45) *
создания собственных виджетов с возможностью использования стилей на сегодняшний день остается не решенным?
в коде можешь хоть что делать, а вдизайнере не знаю, я им крайне редко пользуюсь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 2.2.2009, 21:14
Сообщение #8


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Цитата(fantom @ 2.2.2009, 17:45) *
То есть как я понимаю вопрос создания собственных виджетов с возможностью использования стилей на сегодняшний день остается не решенным?
Очень даже решен, я видел ребята полностью с использованием стилей пишут игрушку, разумеется кроме 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  


Цитата(fantom @ 3.2.2009, 19:30) *
А если они создают свои виджеты с нуля и программируют их на пооддержку стилей то я бы хотел поинтересоваться как?
может ответы на это можно найти в руководстве: Implementing Styles and Style Aware Widgets?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.3.2024, 22:40