三优科技 网站开发,粉红色的网站首页,php网站建设含义,1元建站QT实现窗口平铺的方式有3种
1、drawTiledPixmap
利用该接口可以在给定的矩形内重复绘制图片
void QPainter::drawTiledPixmap(const QRectF rectangle, const QPixmap pixmap, const QPointF position QPointF())
参数1#xff1a;绘制的矩形范围
参数2…
QT实现窗口平铺的方式有3种
1、drawTiledPixmap
利用该接口可以在给定的矩形内重复绘制图片
void QPainter::drawTiledPixmap(const QRectF rectangle, const QPixmap pixmap, const QPointF position QPointF())
参数1绘制的矩形范围
参数2绘制的图片
参数3在矩形中的哪个点开始绘制
重写绘图事件如下
#ifndef WIDGET_H
#define WIDGET_H#include QWidget
#include QPainterclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent nullptr): QWidget(parent){}~Widget()default;protected://重写绘图事件void paintEvent(QPaintEvent* ev) override{QPainter p(this);p.drawTiledPixmap(this-rect(),QPixmap(:/sugar.png));}};
#endif // WIDGET_H2、利用画刷
画刷的类型可以指定为Qt::TexturePattern
画刷的构造函数接受一张图片可以直接变为图片画刷
#ifndef WIDGET_H
#define WIDGET_H#include QWidget
#include QPainterclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent nullptr): QWidget(parent){}~Widget()default;protected://重写绘图事件void paintEvent(QPaintEvent* ev) override{QPainter p(this);QPixmap pix(:/sugar.png);QBrush brush(pix);//指定图片画刷p.setBrush(brush);//图片会重复填充这个矩形p.drawRect(this-rect());}};
#endif // WIDGET_H3、利用background-image
qss样式表可以指定背景平铺
只需要指定background-image对应的图片就行了就会自动平铺满
#ifndef WIDGET_H
#define WIDGET_H#include QWidget
#include QPainterclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent nullptr): QWidget(parent){this-setAttribute(Qt::WA_StyledBackground);this-setStyleSheet(background-image:url(:/sugar.png););}~Widget()default;};
#endif // WIDGET_H