Люблю Qt

До недавнего времени не пробовал менять оформление окон Qt-шных. Оказалось все настолько просто и понятно. Любой кто знаком с css может изменить внешний вид объекта-наследника QWidget. Например для скругленной красной рамки у кнопок делаем так:

QPushButton {
  border-width: 2px;
  border-color: red;
  border-style: solid;
  border-radius: 5;
}

Ну и в конструкторе или main.cpp пишем:

QFile file(":/mediacom-agent.qss");
file.open(QFile::ReadOnly);
QString styleSheet = QLatin1String(file.readAll());
qApp->setStyleSheet(styleSheet);

Все на самом деле просто и функционально. Можно использовать системные цвета, например так:

QPushButton { color: palette(dark); }

Все очень похоже на обычный css, указываем класс и настраиваем внешний вид так как позволит фантазия. Активный пункт меню может быть настроен так:

QMenu:selected { background-color: green }

Для состояний возможны отрицания:

QPushButton:!hover { color: red }

Для сложных элементов можно получить доступ к подэлементам. Например так:

QComboBox::drop-down { image: url(dropdown.png) }

Все описывать не вижу смысла, в SDK все подробно расписано и есть хорошие примеры. Забавно, что за полгода я не заметил такой замечательной вещи как стили…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *