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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: дизайн приложения  (Прочитано 5913 раз)
T0Nikk
Гость
« : Март 29, 2010, 23:16 »

Привет!
Делаю СУБД, осталось только привести внешний вид приложения в порядок.В Ассистенте по этому поводу ничего конкретного не нашел. В частности, не получается изменить стиль дочерних окон и хочется поиграться с градиентной заливкой. Посоветуйте, чем лучше воспользоваться и, если можно, на примере.
Записан
T0Nikk
Гость
« Ответ #1 : Март 29, 2010, 23:26 »

// К примеру
// Цвет error_output не меняется
Код
C++ (Qt)
...    
    dock = new QDockWidget(tr("Comments:" ),
                           this);
    error_output = new QListWidget( dock );
    error_output->addItems(QStringList() << "");
    dock->setWidget( error_output );
    addDockWidget(Qt::RightDockWidgetArea, dock);
...
    QColor color;
    color.setRgb( 0, 0, 255 );
 
   QPalette palette;
   QPalette::ColorRole cRole = QPalette::Background;
   palette.setColor( cRole, color.rgb() );
 
   this->error_output->setPalette( palette );
 
« Последнее редактирование: Март 30, 2010, 06:22 от Пантер » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Март 30, 2010, 00:19 »

Наиболее удобный способ менять цвет произвольного виджета - это не создавать палитру на пустом месте, а взять её у виджета поменять только то цвет который нужен:
Код
C++ (Qt)
QPalette palette = error_output->palette();
palette.setColor(QPalette::Background, QColor(0, 0, 255));
error_output->setPalette(palette);
 
Также не забудь про
Цитировать
The palette entry for the widget's background role is used to fill the widget's background (see QWidget::autoFillBackground), and the foreground role initializes QPainter's pen.
« Последнее редактирование: Март 30, 2010, 00:21 от lit-uriy » Записан

Юра.
voronElf
Гость
« Ответ #3 : Март 30, 2010, 05:27 »

Через таблицы стилей удобно это делать. Поиск "style sheet" в документации. Ну а пример:

Код:
QWidget {
font-family: Verdana;
font-style: normal;
font-weight: normal;
font-size: 11px;
color: #090909;
}
#QuickStart #line1, #QuickStart #line2 {
background: qlineargradient(x1:1, y1:1, x2:0, y2:1, stop: 0 #f4f6f6, stop: 0.4 #f4f6f6, stop: 1 #b0b0b0);
border: none;
}

это лежит в отдельном файле в ресурсах. Приложению ставлю содержимое файла через QApplication::setStyleSheet(...)
Записан
dnc2rt
Гость
« Ответ #4 : Март 30, 2010, 07:20 »

Используй таблицу стилей!

http://doc.crossplatform.ru/qt/4.4.3/stylesheet.html
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Март 30, 2010, 10:36 »

>>Приложению ставлю содержимое файла через QApplication::setStyleSheet(...)
при использовании таблиц стилей, можно даже через аргументы командной строки установить нужный стиль приложения, если он явно не устанавливается через QApplication::setStyleSheet
Записан

Юра.
voronElf
Гость
« Ответ #6 : Март 30, 2010, 12:08 »

интересно, ссылки нету под рукой, почитать через какие именно параметры ?
Записан
T0Nikk
Гость
« Ответ #7 : Март 30, 2010, 16:04 »

Спасибо всем и извините за беспокойство!
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #8 : Март 30, 2010, 21:05 »

>>интересно, ссылки нету под рукой, почитать через какие именно параметры ?
ключ style
Для теста.
Установка стандартных стилей Qt.
<path/to/qt>/bin/assistant.exe -style plastique

Установка пользовательских стилей.
<path/to/qt>/bin/assistant.exe -style <path/to/qt>/examples/widgets/stylesheet/qss/coffee.qss
Записан

Юра.
T0Nikk
Гость
« Ответ #9 : Март 30, 2010, 21:18 »

lit-uriy,
да я как раз и разбираюсь со стилями в stylesheet из Qt Demos
Записан
voronElf
Гость
« Ответ #10 : Март 31, 2010, 05:45 »

спасибо за описание ключика, буду иметь ввиду  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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