【Qt】设置背景

版权声明:本文为博主原创文章,未经博主允许不得转载。 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());
 }

猜你喜欢

转载自blog.csdn.net/u010168781/article/details/82784490