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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: База палитр для создания тем в программе  (Прочитано 2658 раз)
PavelIgorevich
Гость
« : Февраль 14, 2015, 15:56 »

Добрый день, товарищи!

Совсем что-то мозг отказывается "варить" над, казалось бы, простым вопросом... В QML новичок, прошу помощи.

Итак, представим, что у нас есть программа, которая может быть стилизована только одной из двух групп цветов - например, черным и двумя его оттенками, и красным + 2 его оттенка.

Хочу создать документ, в котором эти данные о цветах будут храниться, и его удобно было бы подсасывать для использования в оформлении различных элемнтов.

Родил такую штуку:
Код:
//PaletteColor.qml - документ, который определяет объект типа Цвет, в properties которого содержатся оттенки
import QtQuick 2.4

QtObject{
       id: colorShades;
       property color main;
       property color light;
       property color superlight;
}

//FiftyShadesOfGrey.qml - это уже готовый цвет для темы
import QtQuick 2.4

PaletteColor{
      main:"grey";
      light:"#222222";
      superlight:"#111111";
}

//test.qml

import QtQuick 2.4
Rectangle{
       id:rect;
       widht:100;height:100;
       color: FiftyShadesOfGrey.light;
}

Сие чудо не работает. Когда в свойство color ставлю просто "red", то появляется красный квадрат, как и рассчитано.

Подскажите, пожалуйста, в чем может быть ошибка? И, вообще, правильную ли я политику в архитектуре избрал - цветовых схем будет много, а создавать под каждую отдельный файл не очень, как мне кажется, правильное решение. Может быть, есть какие-то более интересные способы реализации?

Всем заранее спасибо!
Записан
navrocky
Moderator
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #1 : Февраль 24, 2015, 16:41 »

Я бы использовал глобальный JS файл с палитрами. Или сделал бы синглтон со свойствами-палитрами. Но синглтоны на данный момент в QML довольно плохо документированы и там много "если".

PS. Также оттенки основного цвета можно получать алгоритмически, используя Qt.lighter/darker и др. Не уверен, подойдёт ли это в вашем случае..
Записан

Гугль в помощь
PavelIgorevich
Гость
« Ответ #2 : Март 03, 2015, 17:46 »

Я бы использовал глобальный JS файл с палитрами. Или сделал бы синглтон со свойствами-палитрами. Но синглтоны на данный момент в QML довольно плохо документированы и там много "если".

PS. Также оттенки основного цвета можно получать алгоритмически, используя Qt.lighter/darker и др. Не уверен, подойдёт ли это в вашем случае..

Благодарю за ответ! Да, я решил пользоваться простым JS-файлом с описанием нужных цветов и их оттенков. Получилось достаточно удобно.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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