1. 方法1(paintEvent方式)
使用paintEvent()
实现
1. .h
文件中添加虚函数
protected:void paintEvent(QPaintEvent *event) override;
- 添加虚函数方法:
- 选中父类,点击鼠标右键
- 点击
重构
- 点击
Insert Virtual Funtion of Base Classes
2. .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.问题
- 此方式中显示的背景是图片原始大小,当组件尺寸大于图片时,背景图片是重复的
参考
-
Qt中正确的设置窗体的背景图片的几种方式
-
设置QWidget背景图的几种方法