Чтобы установить фон виджета, вы можете установить таблицу стилей:
theSlider->setStyleSheet("QSlider { background-color: green; }");
Следующее установит фон виджета, что позволит вам сделать больше:
void paintEvent(QPaintEvent *event) {
QPainter painter;
painter.begin(this);
painter.fillRect(rect(), /* brush, brush style or color */);
painter.end();
// This is very important if you don't want to handle _every_
// detail about painting this particular widget. Without this
// the control would just be red, if that was the brush used,
// for instance.
QSlider::paintEvent(event);
}
И кстати. следующие две строки вашего примера кода дадут предупреждение:
QPainter painter(this);
painter.begin(this);
А именно этот с использованием GCC:
QPainter::begin: Устройство рисования может быть раскрашено только одним рисовальщиком за раз.
Поэтому убедитесь, как я делаю в своем примере, что вы делаете либо QPainter painter(this)
, либо painter.begin(this)
.
person
Morten Kristensen
schedule
30.10.2011