Qt: 给Widget设置背景图片
结合网上多篇资料整理如下,给自己和别人一个参考
方法一:
1.在要换背景的类的构造函数中装载一个图片,变量要为全局的,接下来会用到
_image.load("image/image_background"); setAutoFillBackground(true); // 这个属性一定要设置 QPalette pal(palette()); pal.setBrush(QPalette::Window, QBrush(_image.scaled(size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation))); setPalette(pal);
2.实现resizeEvent函数,在里面画背景void Example::resizeEvent(QResizeEvent *event)
{ QWidget::resizeEvent(event); QPalette pal(palette()); pal.setBrush(QPalette::Window,QBrush(backgroundImage.scaled(event->size(), Qt::IgnoreAspectRatio,Qt::SmoothTransformation))); setPalette(pal);}
方法二:利用QPalette
利用QPalette,既可以将背景图设置部分话在paintEvent()函数中,也可以将它放在构造函数中。如下所示我所使用的一个程序片断:
QPalette pal;
QString filename = QDir::currentPath()+ "/image/1.