Qt背景平铺

QT实现窗口平铺的方式有3种

1、drawTiledPixmap

利用该接口可以在给定的矩形内重复绘制图片

复制代码
void QPainter::drawTiledPixmap(
        const QRectF &rectangle, 
        const QPixmap &pixmap, 
        const QPointF &position = QPointF())

参数1:绘制的矩形范围

参数2:绘制的图片

参数3:在矩形中的哪个点开始绘制

重写绘图事件,如下:

cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPainter>

class Widget : public QWidget
{
    Q_OBJECT

public:
    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_H

2、利用画刷

画刷的类型可以指定为Qt::TexturePattern

画刷的构造函数接受一张图片,可以直接变为图片画刷

cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPainter>

class Widget : public QWidget
{
    Q_OBJECT

public:
    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_H

3、利用background-image

qss样式表,可以指定背景平铺

只需要指定background-image对应的图片就行了,就会自动平铺满

cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPainter>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr): QWidget(parent)
    {
        this->setAttribute(Qt::WA_StyledBackground);
        this->setStyleSheet("background-image:url(:/sugar.png);");
    }
    ~Widget()=default;

};
#endif // WIDGET_H
相关推荐
zh_xuan2 分钟前
c++ string_view
开发语言·c++
阿里嘎多学长5 分钟前
2026-09-05 GitHub 热点项目精选
开发语言·程序员·github·代码托管
古少侠8 分钟前
用 DS随心转 把 AI 画的 Mermaid 流程图转成 Word 里的高清图
开发语言·c#·word
万年咸鱼14 分钟前
Java BufferedOutputStream 详解:原理、用法与性能优化
java·开发语言·性能优化
万年咸鱼22 分钟前
Java BufferedInputStream 详解:原理、用法与实战
java·开发语言·python
weixin1997010801624 分钟前
[特殊字符]《二手ERP × 闲鱼消息驱动架构:正向+逆向交易消息如何驱动WMS出库与回传》(附Python源码)
开发语言·python·架构
galaxy_strive39 分钟前
Qt C++插件化编写项目(1)
开发语言·c++·qt
见叶之秋1 小时前
【C++】C++ 核心进阶(一):泛型编程基石 —— 模板初阶与 STL 体系开篇
开发语言·c++
Escalating_xu1 小时前
【Makefile 进阶】从自动发现源文件、模式规则到目录分离与多模块递归构建
linux·开发语言
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】Gemini模型接入知识体系
java·开发语言·网络·人工智能·网络协议·学习·http