QWidget改变背景图的方法和坑
  micz61TEX78l 2023年11月13日 22 0

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

(文章目录)


前言

本篇文章将讲解QWidget改变背景图的方法和会遇到的问题。

一、添加背景图资源文件

添加资源文件 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 添加对应背景图 在这里插入图片描述 编译后出现资源文件: 在这里插入图片描述

二、使用 QPalette

在 Qt 中,可以使用 QPalette 类和 QWidget 的 setPalette() 函数来改变控件的颜色、背景图等。

QPalette 类提供了一种处理颜色和绘图相关属性的通用方式,可以作为 QWidget 的属性之一,在改变控件颜色、背景图等方面被广泛应用。

QPalette 的 Background 属性可以指定控件的背景色或背景图。通过 QBrush 类型的参数向 Background 属性传递 QPixmap 对象来设置背景图。

 // 设置 QWidget 的背景图
 QPixmap pixmap(":/LEDUI.png");
 QPalette palette;
 palette.setBrush(backgroundRole(), QBrush(pixmap));
 setPalette(palette);
 setAutoFillBackground(true);

三、重写paintEvent() 函数

这里可以重写paintEvent() 函数来重写绘制背景图。 QPainter里面有一个drawPixmap函数,我们首先可以得到背景图的QPixmap,然后再使用drawPixmap函数将其绘制出来。

// 重写 paintEvent() 函数来设置 QWidget 的背景图
void Widget::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QPixmap pixmap(":/LEDUI.png");
    painter.drawPixmap(0, 0, pixmap.scaled(width(), height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
}

四、使用QT的设计师界面

右击选择改变样式表: 在这里插入图片描述 将要显示的背景图添加进去: 在这里插入图片描述 添加进去后就能直接看到这个背景图了: 在这里插入图片描述 然后运行看结果: 在这里插入图片描述 可以看到什么都没有显示出来。这就是本篇文章要给大家讲解的坑。 因为这里我们使用的是QWidget类,这可能是QT不支持这样做吧,具体原因这里也没有去探究。 解决方法: 在QWidegt中再添加一个QWidegt在这个QWidegt中添加背景图就能直接显示出来了。 在这里插入图片描述

总结

本篇文章就讲解到这里,这是大家在使用QT开发中可能会遇到的一个错误,这里我给大家总结了几种设置背景图的方法,大家有什么别的想法也可以和我一起交流。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  micz61TEX78l   2023年11月19日   29   0   0 3c插入图片寄存器
  sX9JkgY3DY86   2023年11月13日   32   0   0 ci控件Text
micz61TEX78l