How to Change the Background Color of QWidget/ru

From Qt Wiki
Jump to: navigation, search

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh


Введение

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

Использование палитры цветов

Первый пример показывает как изменить цвет фона, используя QPalette

m_pMyWidget = new QWidget(this);
m_pMyWidget->setGeometry(0,0,300,100);
QPalette Pal(palette());

// устанавливаем цвет фона
Pal.setColor(QPalette::Background, Qt::black);
m_pMyWidget->setAutoFillBackground(true);
m_pMyWidget->setPalette(Pal);
m_pMyWidget->show();

Using Style Sheet

Таблица стилей содержит текстовое описание изменений в стиле элемента окна. Подробнее читайте: Qt Style Sheets document.

m_pMyWidget = new QWidget(this);
m_pMyWidget->setGeometry(0,0,300,100);
m_pMyWidget->setStyleSheet("background-color:black;");
m_pMyWidget->show();

Оба способа смены цвета фона QWidget были успешно скомпилированы с использованием Qt SDK 1.1 и протестированы на устройствах Symbian.

Note: Если Вы наследуете QWidget, то для использования таблицы стилей Вы должны реализовать событие paintEvent:

void CustomWidget::paintEvent(QPaintEvent *)
{
 QStyleOption opt;
 opt.init(this);
 QPainter p(this);
 style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}