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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Темы  (Прочитано 4217 раз)
ruzik
Гость
« : Февраль 12, 2011, 16:28 »

Здравствуйте, а есть ли в qt, возможность изменять стиль не отдельного элемента(setStyleSheet), а всего приложения сразу, этакие темы
Записан
merke
Гость
« Ответ #1 : Февраль 12, 2011, 16:50 »

Qt Demo -> Widgets -> Style Sheet
Записан
ruzik
Гость
« Ответ #2 : Февраль 12, 2011, 17:41 »

А не можете ли дать пример использования
Записан
merke
Гость
« Ответ #3 : Февраль 12, 2011, 17:44 »

Так там и есть пример использования
Записан
ruzik
Гость
« Ответ #4 : Февраль 12, 2011, 21:32 »

В ассистенте есть лишь это на styleSheet
QLineEdit { background: yellow }
 QCheckBox { color: red }
А это скорее относится к setStyleSheet, вот я и спрашиваю
Записан
kdm
Гость
« Ответ #5 : Февраль 12, 2011, 21:54 »

Смотри в приложении Qt Demo в составе Qt в разделе Widgets есть примеры Styles и Stylehsheet. Пример Styles более интересен. Но с QStyles не работал. Все что связано с setStylesheet мне кажется более просто. Надо всего лишь создать файл, в котором (как в css для вебстраниц) указать набор свойств для рисования виджетов и в конструкторе главного окна его загрузить.

Эти свойства примененные для главного окна могут применяться не только к главному окну, но и к его внутренним виджетам (как все это делается написано в доке).

Ну или как только что посмотрел у QApplication есть слот setStyleSheet. Тогда похоже не надо будет загружать стили в конструкторе каждого окна.

Код:
    QFile file("stylesheet.qss");
    if (file.open(QFile::ReadOnly | QFile::Text))
    {
        QTextStream in(&file);
        setStyleSheet(in.readAll());
    }

К примеру содержимое такого файла (основан на тех же примерах)
Код:
QPushButton#SideBar_MainTab { 
    background-image: url("Pictures/Side Bar/Button.png");
border: 2px solid #f6f7fa;
     border-radius: 6px;
     background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                       stop: 0 rgb(246,247,250), stop: 1 rgb(218,219,222));
     min-width: 200px;
 }

QPushButton:hover:!checked#SideBar_MainTab {
background-image: url("Pictures/Side Bar/Button Selected.png");
  background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                       stop: 0 rgb(250,251,252), stop: 1 rgb(223,224,227));
 
}

QPushButton:pressed#SideBar_MainTab {
     background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                       stop: 0 #dadbde, stop: 1 #f6f7fa);
}

QPushButton:checked#SideBar_MainTab {
     background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                       stop: 0 #dadbde, stop: 1 #f6f7fa);
border-color: rgb(220, 220, 220);
}
« Последнее редактирование: Февраль 12, 2011, 22:05 от kdm » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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