Qt设置窗体背景
2017-01-04 13:23
471 查看
简述
实现方式
SetPalette设置背景
源码
QSS设置背景
附加问题
QPainter来绘制
扩展
美化软件的效果。
QSS
QPainter来绘制
painterEvent函数是空的原因,你需要自己添加函数或者是控件继承QFrame。
图片后update(),就可重新绘制背景图片。
实现方式
SetPalette设置背景
源码
QSS设置背景
附加问题
QPainter来绘制
扩展
简述
QWidget默认是白色的背景,在实际的应用中我们经常为它设置好看的背景图片来达到美化软件的效果。
实现方式
通过SetPalette来设置背景图片QSS
QPainter来绘制
SetPalette设置背景
源码
setAutoFillBackground(true); QPixmap pixmap(":/bj"); QPalette palette; palette.setBrush(QPalette::Window, QBrush(pixmap)); setPalette(palette); resize(pixmap.size());
QSS设置背景
setStyleSheet("border-image:url(:/bj);");
附加问题
如果你的控件是继承自QWidget的,会出现setStyleSheet没有效果。这是由于QWidget的painterEvent函数是空的原因,你需要自己添加函数或者是控件继承QFrame。
void paintEvent(QPaintEvent *) { QStyleOption opt; opt.init(this); QPainter p(this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); }
QPainter来绘制
通过painterEvent函数将背景图片绘制到控件的区域。void Widget::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter painter(this); painter.setPen(Qt::NoPen); painter.drawPixmap(rect(), QPixmap(":/bj")); }
扩展
通过QPainter的绘制图片,我们可以通过一个局部变量来保存背景图片得路径,每次设置图片后update(),就可重新绘制背景图片。
void Widget::setPixmapName(const QString &pixmapName) { m_pixmapName = pixmapName; update(); } void Widget::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter painter(this); painter.setPen(Qt::NoPen); painter.drawPixmap(rect(), QPixmap(m_pixmapName)); }
相关文章推荐
- Qt中设置窗体背景图片后竟变黑
- QT设置窗体大小和背景颜色
- QT中如何设置窗体的背景图片。
- QT中如何设置窗体的背景图片
- QT中如何设置窗体的背景图片。
- QT小知识点(5) -QT中如何设置窗体的背景图片
- Qt设置窗体背景颜色
- Qt中正确的设置窗体的背景图片的几种方式
- Qt中设置子窗体不继承副窗体以及stylesheet设置背景
- Qt中设置QML窗体无边框和背景透明
- 设置窗体背景图片,并且让图片随着窗体的大小的调整而调整大小
- Qt: 给Widget设置背景图片
- Qt 如何 给Widget设置背景图片
- WinForm窗体背景渐变色的设置
- Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())
- QT 窗口背景图片设置(图片自动缩放)
- Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())
- pyqt 窗体背景设置
- 窗体无法设置背景透明
- wpf如何将图片设置为窗体的背景