1.在顶层窗口中设置背景图案,最好不用setStyleSheet,因为它不仅对顶层窗口无效,还会把子部件窗口设置为该样式,这不是我们想要的。使用QPalette是比较推荐的,这个可以参见博友文章http://lingshaohuprose.blog.163.com/blog/static/16957978220122201116275/。这里我原样复制一下加以说明
————————————————————————————————————————————————————————————————————————
imagewidget.hpp
===============================================================
#ifndef IMAGEWIDGET_HPP
#define IMAGEWIDGET_HPP
#include <QtCore>
#include <QtGui>
class ImageWidget : public QWidget
{
Q_OBJECT
public:
ImageWidget(QWidget *parent = 0, Qt::WindowFlags f = 0);
virtual ~ImageWidget();
protected:
void resizeEvent(QResizeEvent *event);
private:
QImage _image;
};
#endif
=================================================================
imagewidget.cpp
=================================================================
#include "imagewidget.hpp"
ImageWidget::ImageWidget(QWidget *parent, Qt::WindowFlags f)
: QWidget(parent, f)
{
_image.load("my_welcome_background.png");
setAutoFillBackground(true);
}
ImageWidget::~ImageWidget()
{
}
void ImageWidget::resizeEvent(QResizeEvent *event)
{
QWidget::resizeEvent(event);
QPalette pal(palette());// 注意下面这一行,就是靠他实现大小拉伸~~~
pal.setBrush(QPalette::Window,
QBrush(_image.scaled(event->size(), Qt::IgnoreAspectRatio,
Qt::SmoothTransformation)));
setPalette(pal);
}
http://hi.baidu.com/xchinux/blog/item/329f6509ce5702c83ac76376.html
还有一点,很多朋友不知道怎么加载图片。这里是分情况的:
(1)如果你使用的是是资源文件,路径应该为QImage(":/res/main.jpg") //资源文件路径
(2)如果是放在对应的文件夹下,可以用绝对路径 ,也可使用相对路径(看清你相对于你当前文件的图片路径)
2.设置子窗口部件的背景,前景,边框……既可以使用QPallete,也可以使用setStyleSheet。如果需要设置的部件很少,setStyleSheet的代码会更简洁。如果需要为很多部件设置相同的样式,QPallete更适用(我这么认为。)
背景可以做的很炫酷,希望你也玩的开心~