How to Change the Background Color of QWidget/ru

From Qt Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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);
}