How to Change the Background Color of QWidget/ru
Jump to navigation
Jump to search
Введение
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);
}