【Qt】Qt组件设置背景图片

1. 方法1(paintEvent方式)

使用paintEvent()实现

1. .h文件中添加虚函数

c 复制代码
protected:
	void paintEvent(QPaintEvent *event) override;
  • 添加虚函数方法:
    • 选中父类,点击鼠标右键
    • 点击重构
    • 点击 Insert Virtual Funtion of Base Classes

2. .c文件实现

c 复制代码
void M_LoginDlg::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event)

    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing);
    painter.drawPixmap(rect(), QPixmap(":/Img/Img/loginBg.jpg"));
}

3. 效果

4. 备注

  • 图片适应组件的尺寸

2. 方法2(.ui中实现)

1. 实现


2. 效果

3.问题

  • 此方式中显示的背景是图片原始大小,当组件尺寸大于图片时,背景图片是重复的

参考

  1. Qt中正确的设置窗体的背景图片的几种方式

  2. 设置QWidget背景图的几种方法

相关推荐
CoderIsArt17 分钟前
C#中UI 线程与 Dispatcher
开发语言·ui·c#
AI情绪识别开源3 小时前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
「QT(C++)开发工程师」4 小时前
C++ auto 用法详解
开发语言·c++
OPEN-F4 小时前
C++STL教程:容器适配器与实用工具
开发语言·c++
yaoxin5211234 小时前
507. Java 反射 - 在 BeanFactory 中实现依赖注入
java·开发语言
OPEN-F4 小时前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
有点。4 小时前
C++二叉搜索树进阶
开发语言·c++
HugoStudio_SWAN4 小时前
【擦除重绘】C++ 控制台动画:弹跳 Logo DVD 屏保效果
开发语言·c++·学习·程序人生
kyle~6 小时前
C++_STL---迭代器失效
开发语言·c++