版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/82784490
1、使用样式表qss设置背景
QDialog
设置背景图片:
dlg->setStyleSheet("QDialog{border-image: url(://test.png);}");
设置背景颜色:
dlg->setStyleSheet("QDialog{background-color: red;}");
QWidget
设置背景图片:
wgt->setStyleSheet("QWidget{border-image: url(://test.png);}");
设置背景颜色:
wgt->setStyleSheet("QWidget{background-color: red;}");
QWidge通过样式表设置背景发现没有效果;
解决方法:https://blog.csdn.net/u010168781/article/details/80338445
QFrame
设置背景图片:
frm->setStyleSheet("QFrame{border-image: url(://test.png);}");
设置背景颜色:
frm->setStyleSheet("QFrame{background-color: red;}");
2、使用QPalette设置背景
QDialog
QPalette palette;
palette.setColor(QPalette::Background,QColor("red"));
//palette.setBrush(QPalette::Background,QBrush(QPixmap("://SplashScreen.png").scaled(this->size())));
dlg->setPalette(palette);
填充照片时,记得缩放
QPixmap("://SplashScreen.png").scaled(this->size())
QWidget、QFrame及其子类
如果指定了父指针,需要设置;setAutoFillBackground(true);
如果没有指定父指针,不需要设置;
3、使用 paintEvent 绘图事件
设置图片
void Widget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawPixmap(this->rect(),QPixmap("://SplashScreen.png").scaled(this->size()));
}
设置纯色
void Widget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setPen(QPen(QColor("red"), 2));
painter.setBrush(QColor("red"));
painter.drawRect(this->rect());
}