首页 > 其他分享 >QWidget设置背景图片

QWidget设置背景图片

时间:2023-02-02 14:11:06浏览次数:34  
标签:palette Qt QPalette image QWidget png 设置 frame 背景图片

1. 使用QPalette 

  1. // 设置背景图片
  2. setAutoFillBackground(true); // 这句要加上, 否则可能显示不出背景图.
  3. QPalette palette = this->palette();
  4. //palette.setColor(QPalette::Window, Qt::red); // 设置背景色
  5. //palette.setBrush(this->backgroundRole(), Qt::black);// 设置背景色
  6. palette.setBrush(QPalette::Window,
  7. QBrush(QPixmap(":/image/bkg.png").scaled( // 缩放背景图.
  8. this->size(),
  9. Qt::IgnoreAspectRatio,
  10. Qt::SmoothTransformation))); // 使用平滑的缩放方式
  11. this->setPalette(palette);

2. 使用QPainter直接绘制背景图

  1. void Widget::paintEvent(QPaintEvent *event)
  2. {
  3. QPainter painter(this);
  4. // 背景图片
  5. painter.drawPixmap(0,0,width(),height(),QPixmap(":/image/bkg.png"));
  6. // 窗口背景色
  7. // painter.setBrush(Qt::black);
  8. // painter.drawRect(this->rect());
  9. }

3. 使用QSS设置

  1. setStyleSheet("QWidget#Widget{border-image:url(:/image/bkg.png)}");
  2. void Widget::paintEvent(QPaintEvent *event)
  3. {
  4. QStyleOption opt;
  5. opt.init(this);
  6. QPainter p(this);
  7. style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
  8. }

4. 在QWidget上直接叠加一层QFrame

  1. QFrame *frame = new QFrame(this);
  2. frame->setObjectName("myframe");
  3. frame->setGeometry(this->geometry());
  4. frame->resize(width(),height());
  5. frame->setStyleSheet("QFrame#myframe{border-image:url(:/image/bkg.png)}" );

 

 

 

 

 

 

</article>

标签:palette,Qt,QPalette,image,QWidget,png,设置,frame,背景图片
From: https://www.cnblogs.com/mkmkbj/p/17085815.html

相关文章

  • 通过注册表设置控制台的属性
    想更改控制台的背景颜色和前景色,通过打开一个新的cmd,右键点击标题栏,属性,点击颜色选项卡,设置屏幕背景和屏幕文字。如下:  点击确定后,新启动一个cmd,显示的就是新的颜色......
  • 将Windows系统设置为NTP服务器
    环境Windows10,本机IP地址为:192.168.6.133步骤一、编辑注册表win+r快捷键打开运行窗口,输入regedit打开注册表编辑器,找到以下几项并修改其值:1、将type的值修改为NTP:HK......
  • QT修改、获取系统时间,以及设置日期
    设置系统时间:QStringm="date-s"2007-08-0314:15:00""QProcess::startDetached(m);//0312表示3月12日,1025表示当前时分QProcess::startDetached("hwclock-w");/......
  • 设置服务恢复bat命令
    提问设置服务恢复bat命令回答以管理员身份运行sc.exefailure"服务名称"reset=0actions=restart/60000/restart/60000/run/1000参考https://www.cnblogs.com/s......
  • TQ2440移植u-boot2016.11全过程记录-【5】设置从NOR FLASH启动U-BOOT
    TQ2440移植u-boot2016.11-设置从NORFLASH启动u-boot​​geditinclude/configs/tq2440.h​​屏蔽掉宏​​CONFIG_SKIP_LOWLEVEL_INIT​​,修改宏​​CONFIG_SYS_TEXT_BASE​......
  • Codeblocks相关设置
    《Codeblocks相关设置》本帖持续更新…1、自动代码补全菜单栏->Setting->Editor->Keyboardshortcuts->Edit->Completecode,然后根据自己需求设置快捷键。2、行注......
  • Qt设置应用程序图标、小图标显示+打包发布exe
    Qt设置应用程序图标、小图标显示+打包发布exe目录​​Qt设置应用程序图标、小图标显示+打包发布exe​​​​(一)设置应用程序图标、小图标​​​​(二)打包发布exe程序​​​​(......
  • QTableView的样式设置和常用函数
    QTableView用于显示二维数据,常常与QStandardItemModel结合使用。目录样式设置表头样式设置表头样式设置注意事项表格样式设置常用函数model相关tableView相关headerView......
  • 接口测试|Fiddler设置断点
    Fiddler设置断点断点有两种方式:1、全局断点2、局部断点全局断点全局断点的特点是:不能针对一个请求,是给所有抓到的请求打断点全局断点如何设置:1、快速设置断点:直接点击底部状......
  • 接口测试|Fiddler设置过滤
    Fiddler设置过滤基本的过滤操作流程以百度为例步骤:1、右侧高级工具栏点击Filters》勾选UseFilters》选择ShowonlyInternetHosts和ShowonlythefollowingHosts》在文......