QWidget设置背景图片
1. 使用QPalette
// 设置背景图片
setAutoFillBackground(true); // 这句要加上, 否则可能显示不出背景图.
QPalette palette = this->palette();
//palette.setColor(QPalette::Window, Qt::red); // 设置背景色
//palette.setBrush(this->backgroundRole(), Qt::black);// 设置背景色
palette.setBrush(QPalette::Window,
QBrush(QPixmap(":/image/bkg.png").scaled( // 缩放背景图.
this->size(),
Qt::IgnoreAspectRatio,
Qt::SmoothTransformation))); // 使用平滑的缩放方式
this->setPalette(palette);
2. 使用QPainter直接绘制背景图
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
// 背景图片
painter.drawPixmap(0,0,width(),height(),QPixmap(":/image/bkg.png"));
// 窗口背景色
// painter.setBrush(Qt::black);
// painter.drawRect(this->rect());
}
3. 使用QSS设置
setStyleSheet("QWidget#Widget{border-image:url(:/image/bkg.png)}");
void Widget::paintEvent(QPaintEvent *event)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
4. 在QWidget上直接叠加一层QFrame
QFrame *frame = new QFrame(this);
frame->setObjectName("myframe");
frame->setGeometry(this->geometry());
frame->resize(width(),height());
frame->setStyleSheet("QFrame#myframe{border-image:url(:/image/bkg.png)}" );
</article>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】