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

这篇具有很好参考价值的文章主要介绍了Qt中正确的设置窗体的背景图片的几种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


QLabel加载图片方式之一

 QPixmap pixmap(":/images/abc.jpg"); //通过构造函数载入图片方式
 pixmap.load(":/images/ab.jpg"); //另外一种载入图片方式
 
 pixmap.scaled(ui->label1->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
 ui->label1->setScaledContents(true);
 ui->label1->setPixmap(pixmap);

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

原文链接:https://blog.csdn.net/yanche521/article/details/51017601

Qt中正确的设置窗体的背景图片的方法大致有两种,下面将逐个讲解:

一、利用styleSheet设置窗体的背景图片

使用stylesheet设置窗体的背景图片的时候,可以直接按照下图的操作去进行即可,如下图所示:

但是,需要注意的是:

1.在QWidget中这种方法是不行的,如果你足够细心的话,你会发现使用同样的设置背景图片的方法,背景图片其实并没有发生真实改变,但是它的子窗体背景图片是会发生改变的。

其实我们可以通过在添加一个i额QWidget来解决这个问题,即在QtDesigner中添加一个Frame窗口,我们只需对这个新添加的Frame窗口来进行styleSheet的字符串值即可,新添加的所有子控件都添加到这个新的Frame窗口里。

2.做过Qt开发的朋友应该都知道,Qt的子窗体是会继承父窗体的属性的,这就证明了为什么父窗体的背景在子窗体中也会有,这个是对这个原因的一个非常合理的解释。那么问题来了,我们怎么才能做到子窗体不继承父窗体的背景呢?

既然上面分析到了原因,那么我们就知道如何解决了,仍然打开styleSheet代码编辑界面,我们只需要将下面的几行代码输入进去即可解决这个问题,具体代码如下所示:

#窗体名称 {
border-image: url(:/HouseRentSystem/Resources/test.png);
}

Chapter2 Qt的主窗口背景设置

原文链接:https://blog.csdn.net/yinchengkai/article/details/124056878

首先说明一下background-image、border-image、image三种区别

background-image:简单理解就是将图片从部件的左上角开始贴图,部件的大小限制了显示图片范围;好比是我们按照部件的大小来裁剪图片

border-image:就是将贴图缩放进到部件里,部件能看到完整图片,但是此时图片会被压缩的变形

iamge:部件会按照图片的原始大小进行填充

方法一:最简单的方式是通过ui界面来设置,例如设置背景图片

qt设置背景图片,工控软件,Qt经验总结,qt,数据库,java
在添加资源的下拉框有三种方式:
qt设置背景图片,工控软件,Qt经验总结,qt,数据库,java
选择background-image之后会有个问题,就是窗口上的其它子部件也会贴上图,如下:
qt设置背景图片,工控软件,Qt经验总结,qt,数据库,java
这种添加方式会让所有部件都会贴图,肯定不行;需要把background-image: url(:/image/background.png);放在#MainWindow{}里(MainWindow为主窗口的对象名),意思就是只针对主窗口设置有效,子部件无用;
qt设置背景图片,工控软件,Qt经验总结,qt,数据库,java
背景色设置和背景图片设置也是一样的道理,如果不想窗口中的部件颜色和主窗口一样,也是需要#MainWindow来设置限定范围
qt设置背景图片,工控软件,Qt经验总结,qt,数据库,java
设置完效果如下:
qt设置背景图片,工控软件,Qt经验总结,qt,数据库,java

方法二 :通过代码设置窗口的palette属性来实现

1)背景图片设置

QPixmap pixmap=QPixmap(":/image/background.png").scaled(this->size());
QPalette palette;
//设置主窗口背景图片
palette.setBrush(QPalette::Window,QBrush(pixmap));

2).背景颜色设置

QPalette palette;
//设置主窗口背景颜色
palette.setColor(QPalette::Window,QColor(255, 150, 30));
this->setPalette(palette);

方法三:通过重写paintEvent事件,来设置背景图片和背景颜色

1)设置背景图片

void MainWindow::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
 
    QPixmap pixmap(":/image/background.png");
    painter.drawPixmap(this->rect(),pixmap);
 
}

2)设置背景颜色

void MainWindow::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
 
    QColor color(255, 150, 30);
    painter.setBrush(color);
    painter.drawRect(this->rect());
}

方法四:通过代码中设置样式表,其与方法一类似

1)设置主窗口背景图片

this->setStyleSheet("QMainWindow {background-image:url(:/image/background.png)}");

2).设置主窗口背景颜色

this->setStyleSheet("QMainWindow {background-color:rgb(255, 150, 30)}");

Chapter3 Vs+Qt 界面添加背景图的两种方式(非常实用)

原文链接

1、使用代码实现界面添加背景图

//给窗口添加背景图
QPixmap Images("./1.png");
QPalette Palette = this->palette();
Palette.setBrush(QPalette::Background, Images);
this->setPalette(Palette);

qt设置背景图片,工控软件,Qt经验总结,qt,数据库,java
说明:使用该方法实现界面添加背景图能够正常显示,如上图所示,但是如果需要把该工程打包成 .exe 然后移植到别的电脑运行,需要注意以下两个细节:

(1)把背景图放到该工程文件中(如下图),并在代码中使用相对路径(代码如上所示);
qt设置背景图片,工控软件,Qt经验总结,qt,数据库,java
(2)在 .exe 文件目录再复制一份背景图(如下所示);
qt设置背景图片,工控软件,Qt经验总结,qt,数据库,java
说明:此时移植后的 .exe 便能正常在界面上显示背景图;

2、使用样式表实现界面添加背景图

qt设置背景图片,工控软件,Qt经验总结,qt,数据库,java

Chapter4 如何在Qt Desginer中设置背景图片,且不覆盖其它控件

原文链接
qt设置背景图片,工控软件,Qt经验总结,qt,数据库,java

Chapter5 基于QT的电力软件界面

原文链接:https://blog.csdn.net/2301_76989824/article/details/129490264

基于QT的电力软件界面
包含软件工程源码,软件配置环境:VS2012+Qt4.6,windows操作系统
软件具体包含功能:
[1]界面首页显示,系统下拉导航栏显示、主功能tab页显示
[2]下拉导航栏右边伸缩显示,自定义列表控件;
[3]自定义tab页、表格页功能;
[4] 包含软件打包程序,一键运行;
[5]自定义控件,QSS界面美化,扁平化界面风格显示;
[6]统一界面风格和背景图片。
qt设置背景图片,工控软件,Qt经验总结,qt,数据库,java文章来源地址https://www.toymoban.com/news/detail-754038.html

到了这里,关于Qt中正确的设置窗体的背景图片的几种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue设置页面背景及背景图片

    本地静态图片  cdn图片 设置背景色 实战-PC web登录页 实战-小程序登录页

    2024年02月12日
    浏览(54)
  • CSS 设置背景图片

    一、基本设置 使用 CSS 可以通过以下属性设置背景图片: background-image : 设置背景图片的 URL。 background-size : 设置背景图片的大小。可以设置为绝对像素值,也可以设置为百分比或 \\\"cover\\\"(填充整个容器)或 \\\"contain\\\"(完整显示图片)。 background-repeat : 设置背景图片是否重复。可

    2024年02月12日
    浏览(46)
  • flutter背景图片设置

    1、在配置文件pubspec.yaml中,设置以下代码 2、如果目录中没有assets文件夹,则创建一个文件夹,并且取名为assets,在此文件夹中存放图片资源即可,如果想分文件夹管理,在assets目录下创建文件夹,并且在配置文件pubspec.yaml中加入路径即可 3、图片的使用、在界面文件中,有

    2024年02月04日
    浏览(45)
  • Eclipse背景图片的设置

    我在网上也查找了很多教程,发现有些小伙伴按照如下路径并不能找到images文件夹:、eclipsepluginsorg.eclipse.ui.themes_1.2.1800.v20220316-1102,以及不知如何设置透明度 下面我用最简单的方式教大家解决这些问题。 首先打开eclipse文件夹按照该路径找到images:(ecil是我自己创建的ecl

    2024年02月05日
    浏览(86)
  • 小程序背景图片设置方法

    3、利用image标签做到设置背景图片 思路:我们只要利用css中的z-index改变层级既可做到变成背景图的样子 看代码 wxml: wxss: 这样我们也可以做到背景图的效果。 相关推荐:小程序开发教程 以上就是小程序背景图片设置方法的详细内容,更多请关注群英网络其它相关文章!

    2024年02月07日
    浏览(55)
  • VSCode 如何设置背景图片

     VSCode 设置背景图片 1.打开应用商店,搜索 background ,选择第一个,点击安装。 2. 安装完成后点击设置,点击扩展设置。 3.点击在 settings.json 中编辑。    4.将原代码注释后,加入以下代码。   5. 保存后重启 VSCode 就能看到设置的背景图片啦。 6.最后再点击设置,点击颜色主

    2024年02月06日
    浏览(55)
  • 【QT】 QLabel背景图片自适应窗口大小

    这是最终效果: 想要图片跟随窗口自适应大小,首先我们先对QWidget进行网格布局,布局效果如下: 布局完成后添加 QLabel 代码,新建 QLabel 并且设置为可扩展内容,再设置图片放置最后面,否则图片在最前面会遮挡控件。 然后重写 qt 的绘画事件: 这是绘画事件的实现代码:

    2024年02月15日
    浏览(55)
  • 微信小程序背景图片设置

    问题  :微信小程序通过css:background-image引入背景图片失败 [渲染层网络层错误] pages/wode/wode.wxss 中的本地资源图片无法通过 WXSS 获取,可以使用网络图片,或者 base64,或者使用image/标签 解决方法微信小程序在使用background-image设置背景图时报错:渲染层网络层错误_index.wxss 中的

    2024年02月04日
    浏览(57)
  • 微信小程序 背景图片设置

            微信小程序设置背景图片时,有两种方法:         第一:直接在.wxss中中使用 “background-image:url()” 设置背景图片,但是这种加载背景图片的方法存在一个问题,就是所加载的图片只能是 网络图片 或 base64 图片,是不可以加载本地图片的。 但是使用base64图片

    2024年02月11日
    浏览(64)
  • CSS-设置背景图片的大小

    要设置背景图片的大小,您可以使用CSS的 background-size 属性。这个属性允许您指定背景图片的尺寸。 background-size 属性可以接受不同的值,包括: auto :保持原始图片的尺寸。 cover :将图片缩放到完全覆盖背景区域,可能会裁剪部分图片。 contain :将图片缩放到完全适应背景

    2024年01月25日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包