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

news2024/11/27 2:25:30

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

  • QLabel加载图片方式之一
  • Chapter1 Qt中正确的设置窗体的背景图片的几种方式
    • 一、利用styleSheet设置窗体的背景图片
  • Chapter2 Qt的主窗口背景设置
    • 方法一:最简单的方式是通过ui界面来设置,例如设置背景图片
    • 方法二 :通过代码设置窗口的palette属性来实现
    • 方法三:通过重写paintEvent事件,来设置背景图片和背景颜色
    • 方法四:通过代码中设置样式表,其与方法一类似
  • Chapter3 Vs+Qt 界面添加背景图的两种方式(非常实用)
    • 1、使用代码实现界面添加背景图
    • 2、使用样式表实现界面添加背景图
  • Chapter4 如何在Qt Desginer中设置背景图片,且不覆盖其它控件
  • Chapter5 基于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界面来设置,例如设置背景图片

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

方法二 :通过代码设置窗口的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);

在这里插入图片描述
说明:使用该方法实现界面添加背景图能够正常显示,如上图所示,但是如果需要把该工程打包成 .exe 然后移植到别的电脑运行,需要注意以下两个细节:

(1)把背景图放到该工程文件中(如下图),并在代码中使用相对路径(代码如上所示);
在这里插入图片描述
(2)在 .exe 文件目录再复制一份背景图(如下所示);
在这里插入图片描述
说明:此时移植后的 .exe 便能正常在界面上显示背景图;

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

在这里插入图片描述

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

原文链接
在这里插入图片描述

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]统一界面风格和背景图片。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1167028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

默认路由配置

默认路由: 在末节路由器上使用。(末节路由器是前往其他网络只有一条路可以走的路由器) 默认路由被称为最后的关卡,也就是静态路由不可用并且动态路由也不可用,最后就会选择默认路由。有时在末节路由器上写静态路由时…

重磅发布|美创科技新一代 数据安全管理平台(DSM Cloud)全新升级

重磅发布 新一代 数据安全管理平台(DSM Cloud) 美创科技新一代 数据安全管理平台(简称:DSM Cloud)全新升级,正式发布。 在业务上云飞速发展过程中,快速应对数据激增,同时有效保障数…

基于LDA主题+协同过滤+矩阵分解算法的智能电影推荐系统——机器学习算法应用(含python、JavaScript工程源码)+MovieLens数据集(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境Pycharm 环境数据库 相关其它博客工程源代码下载其它资料下载 前言 前段时间,博主分享过关于一篇使用协同过滤算法进行智能电影推荐系统的博文《基于TensorFlowCNN协同过滤算法的智能电影推荐系统——…

win10提示mfc100u.dll丢失的解决方法,快速解决dll问题

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“mfc100u.dll丢失”。那么,mfc100u.dll是什么?mfc100u.dll是Microsoft Visual C Redistributable文件之一,它包含了用于MFC (Microsoft Foundation Class…

爆火的Swin Transformer到底是什么

文章目录 一、名称解读二、ViT回顾三、Swin Transformer vs ViT四、Swin Transformer结构4.1 Patch Merging模块4.2 相对位置编码4.3 shifted window 五 总结 爆火的Swin Transformer究竟是个啥?今天本篇文章系统讲解下Swin t 结构、优点、位置编码、移位窗口shifte…

材料高温环境电磁参数测试系统 (1GHz-500GHz)

材料高温环境 电磁参数测试系统 (1GHz-500GHz) 材料高温环境电磁参数测试系统测试频率范围可达1GHz~500GHz,最高测试温度达1200℃,可实现高温环境下材料复介电常数、复磁导率、反射率等参数测试。系统由矢量网络分析…

分享四款简单实用的视频下载工具

今天来和大家分享几个视频下载工具。毕竟,在这个自媒体时代,非常多的小伙伴有下载视频的需求,话不多说,直接上干货! 1.Downni 这是一个在线视频下载网站。它支持几乎所有的主流视频平台;然后它还支持多种分…

UNI-APP中如何通过配置访问代理,解决跨域问题

主要思路 通过配置manifest.json文件中的h5选项来完成设置h5是一级属性。 修改manifest.json文件 以下两种都能满足要求 "h5" : {"devServer" : {"https" : false,"port" : 8081,//见备注1"disableHostCheck" : true,&q…

四旋翼无人机PID控制Simulink仿真

底部有完整文件地址 整体采用内外环方式对四旋翼的位置和姿态进行控制 Simulink整体模型图 Matlab版本:R2022a 姿态控制效果 滚转角 ϕ \phi ϕ: 俯仰角 θ \theta

**LEEDCODE 498对角线遍历

class Solution { public:vector<int> findDiagonalOrder(vector<vector<int>>& mat) {int n mat.size();int m mat[0].size();std::vector<int> a;for(int i 0; i < mn-1; i){// 偶数 下往上if(i % 2 0){// 起点 x min(i, n - 1) …

材质之选:找到适合你的地毯

当谈到家居装饰时&#xff0c;地毯是一个经常被忽视的重要元素。但事实上&#xff0c;地毯在家居中扮演了至关重要的角色&#xff0c;不仅可以增加舒适感&#xff0c;还可以改善室内的整体氛围。在这篇文章中&#xff0c;我们将探讨地毯的选择、尺寸、形状和材质&#xff0c;以…

Domino中和邮件安全有关的SPF、DKIM介绍

大家好&#xff0c;才是真的好。 首先&#xff0c;偷偷告诉大家一个非常好的消息&#xff0c;2023年12月7号上午10点&#xff08;美国东部时间&#xff09;&#xff0c;HCL将正式发布Domino 14.0和Sametime 12.0.2版本&#xff01; 发布时间居然能精确到几点钟&#xff0c;很…

同城信息发布小程序制作

信息发布系统的应用较为广泛&#xff0c;如同城信息系统、企业获取各业线索、内部交流、论坛社区小程序、校园交流平台等&#xff0c;如果运营得到往往能起到不错的效果。 它可以连接供需双方&#xff0c;用户获取和发布需求信息、参与互动交流&#xff0c;高效打造有竞争力的…

去库存化进入尾声,内存模组厂加速复苏 | 百能云芯

近期&#xff0c;半导体市场开始传递复苏信号&#xff0c;国内大型半导体制造商纷纷提到明年将迎来多款消费性电子产品的需求回升&#xff0c;这表明半导体设计库存的去化即将进入尾声。另一个重要的迹象是内存市场&#xff0c;自去年以来&#xff0c;国外许多记忆体制造商面临…

数据库-引擎

存储引擎&#xff1a; mysql当中数据用各中不同的技术存储在文件中&#xff0c;每一种技术都使用的是不同的存储机制&#xff0c;索引技巧 索引水平&#xff0c;以及最终提供的不同功能和能力&#xff0c;这些就是我们说的引擎。 功能&#xff1a; mysql将数据存储在文件系统…

vscode设置保存后,自动格式化代码

第一步&#xff1a;打开setting.json文件 第二步&#xff1a;在setting.json中加入以下代码 "editor.formatOnType": true, "editor.formatOnSave": true, "editor.formatOnPaste": true

文心一言 VS 讯飞星火 VS chatgpt (127)-- 算法导论11.2 2题

二、用go语言&#xff0c;位向量(bit vector)是一个仅包含0和1的数组。长度为m的位向量所占空间要比包含m个指针的数组少得多。请说明如何用一个位向量来表示一个包含不同元素(无卫星数据)的动态集合。字典操作的运行时间应为 O(1)。 文心一言&#xff0c;代码正常运行&#x…

企业级人像背景分割解决方案

人工智能和机器学习已经在各个行业领域展现出了巨大的潜力。其中&#xff0c;人像背景分割技术作为一项具有广泛应用价值的解决方案&#xff0c;正在受到越来越多企业的关注。美摄科技&#xff0c;作为一家专注于图像和视频处理的人工智能公司&#xff0c;以其卓越的技术实力和…

携手海外网红营销:出海品牌2023黑色星期五的制胜法宝

作为一年一度的购物狂欢节&#xff0c;2023年黑色星期五即将到来。随着全球化的加速&#xff0c;越来越多的品牌开始将目光投向海外市场&#xff0c;寻求在这个特殊的时刻实现销售的飙升。其中&#xff0c;海外网红已经成为数字营销的中坚力量&#xff0c;能够为品牌带来广泛的…

Linux离线安装MySQL8报缺少perl包问题

前言&#xff1a;Linux在线安装MySQL是比较简单的&#xff0c;这里主要介绍离线安装 linux版本为CentOS7&#xff0c;具体为&#xff1a;CentOS-7-x86_64-DVD-2009.iso mysql版本为8&#xff0c;具体为&#xff1a;mysql-8.2.0-1.el7.x86_64.rpm-bundle.tar 准备工作 安装之前…