Qt之设置窗口背景

深度解析Qt背景设计 在Qt中,我们可以通过QPropertyAnimation类来创建自定义的背景动画。以下我们将详细介绍如何实现这个过程。在Qt Quick中,我们不仅可以设置静态的背景图片,还可以创建动态的背景动画,以增加应用程序的活力和吸引力。在这一节中,我们将介绍如何创建一个简单的背景动画。首先,我们需要一个动画序列,这可以是一系列的图片文件,也可以是一个动画文件。在这个例子中,我们假设我们有一个动画序列,由10个图片文件组成,文件名为"frame0.jpg"、“frame1.jpg”、…、“frame9.jpg” 阅读详情

以前遇到的很多小知识,从今天开始都一点一点记录下来。。。
窗口背景无非两种:背景色、背景图片。Qt中窗口背景如何设置?下面介绍三种方法:
一、QPalette设置背景
二、实现paintEvent,使用QPainter来绘制背景
三、使用QSS来设置背景
关于QSS的使用不想多说,一般我不用QSS设置窗口背景,也不建议使用。(注意:这里是对于窗口而言)。如果是子部件当然可以。因为窗口使用QSS设置背景之后,若子部件不使用同样的方式来设置,默认则会继承父窗口的样式
子部件一般情况下也不需要设置背景图片,即使需要使用QSS也完全可以满足。设置较多的是背景色与图标,QSS中使用background或者background-color的方式可以实现背景色的设置,图标则可以使用setPixmap或者setIcon来设置!
下面介绍QPalette以及paintEvent
一、QPalette设置背景
构造函数中可以使用如下方式:
(1)设置背景色
QPalette palette(this->palette());
palette.setColor(QPalette::Background, Qt::black);
this->setPalette(palette);
或:
QPalette palette;
palette.setBrush(this->backgroundRole(), Qt::black);
this->setPalette(palette);
这里setColor和setBrush都可以使用!
(2)设置背景图片
QPixmap pixmap = QPixmap(“:/qm/safe”).scaled(this->size());
QPalette palette(this->palette());
palette.setBrush(QPalette::Background, QBrush(pixmap));
this->setPalette(palette);
上面方式无论设置背景色还是背景图片QPalette::Background与this->backgroundRole()是等价的!
二、paintEvent设置背景
(1)设置背景色
void IIIMark::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setBrush(Qt::black);
painter.drawRect(this->rect());
}
(2)设置背景图片
void IIIMark::paintEvent(QPaintEvent *)
{
QPixmap pixmap = QPixmap(“:/qm/safe”).scaled(this->size());
QPainter painter(this);
painter.drawPixmap(this->rect(), pixmap);
}
注意:
(1)以上都是用scaled方式对图片进行了适应窗口大小的设置,因为所给的图片大小不一定满足要求,所以采用此方式!当然图片经过拉伸或者压缩之后会变形(纯色图片除外),所以对图片采用此方式时需要注意。
(2)设置背景范围的时候如果需要充满整个窗口最好使用this->rect(),因为我看到很多人在使用QRect(0, 0, 400, 400)之类的语句,那么如果窗口大小改变了呢?此句是不是要跟着变呢?
(3)如果需要背景图片或者背景色随可以发生改变时,也就是所谓的换肤功能,则采用paintEvent的方式,在需要改变的时候使用update()来进行更新。
(4)this->setAutoFillBackground(true)又让我想起了tr(),被很多人滥用。这句话在什么时候使用呢?不妨采用QPalette设置背景的方式加上与去掉这句话对比一下(在有父窗口的情况下使用)。如果这个QWidget直接show,则有背景色,如果放到一个父窗口中,就没有效果。添加该句即可!

更多参考:
1、http://blog.youkuaiyun.com/qq61394323/article/details/12512179
2、http://blog.youkuaiyun.com/cibiren2011/article/details/13022843
3、http://www.cnblogs.com/hanzhaoxin/archive/2012/11/18/2775918.html

qt设置顶层窗口_qt设置窗口的背景图片 在Qt中设置widget背景颜色或者图片方法很多种:重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等。但是各种方法都有其注意事项,如果不注意则很容易陷入麻烦中。1:使用QPalette设置如果给父窗口设置背景往往闪烁一下就不见了,一直没有生效,好像只能在子窗口中设置,但是子窗口中也必须setAutoFillBackground(true);,要不然... 阅读详情

相关推荐

Qt之自定义QStringListModel设置背景色和前景色

QStringListModel里只实现了Qt::EditRole和Qt::DisplayRole,不能直接设置背景色和前景色,所以我们要继承QStringListModel,重写其中的data和setData方法,使其支持Qt::ForegroundRole和Qt::BackgroundRole。需要注意的是在setData方法中,如果数据设置成功,需要发送dataChanged信号,通知各Item调用data方法获取数据。

草上爬的博客 3700

qt自定义qtablemodel实现改变item的背景色

如果你使用的是qtablewidget就非常简单,只需要 qtablewidget->item(i,j)->setBackground(QBrush(0,0,0)); 如果你的qtableview没有使用自定义模型,也是可以用的: qtableview->item(i,j)->setBackground(const QBrush &brush) 但是当你使用自定义模型,也就是继承QAbstractTableModel 则不可以使用这些方法,当然重写model可以提升性能,

家俊的博客 6063

Qt+BackgroundRole+改变窗口背景颜色

示例中通过点击按钮,将窗口背景颜色改为黑色,演示了对setBackgroundRole的使用,包含源码可直接在qtcreator中编译运行

Qt实战案例(26)(序)——详解QTableView表格视图的相关数据角色role

目录一、项目介绍二、项目基本配置三、UI界面设计四、主程序实现4.1 role介绍4.2 widget.h头文件4.3 widget.cpp源文件五、效果演示 一、项目介绍 本文将详解QTableView表格视图的相关数据角色role,代码基本内容与上文类似,上文:Qt实战案例(26)——利用QTableView表格视图实现右击菜单删除功能。 二、项目基本配置 新建一个Qt案例,项目名称为“TableView”,基类选择“QWidget”,取消创建UI界面复选框的选中状态,完成项目创建。 三、UI界面设计

Wendy的博客 2680

别再手动建模了!用Simscape Multibody Link一键导入SolidWorks装配体到Simulink

本文介绍了如何利用Simscape Multibody Link插件将SolidWorks装配体一键导入Simulink,实现CAD到仿真的无缝衔接。该技术显著提升机械系统设计与控制效率,特别适用于工业机器人、车辆悬架等复杂机构的动力学分析。文章详细解析了插件安装、模型导出优化及仿真验证的全流程,帮助工程师摆脱手动建模的低效工作模式。

weixin_27256197的博客 463

Xilinx ZYNQ 7000学习笔记二(FSBL代码分析启动-汇编代码)

Xilinx ZYNQ 7000学习笔记

u011116085的博客 4247

QT中设置窗口背景颜色

QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色。 Qt中窗口背景的设置,下面介绍三种方法。 1.使用QPalette 2.使用Style Sheet 3.绘图事件 一般我不用QSS设置窗口背景,也不建议使用。(这里是对于窗口而,如果是子部件当然可以)。因为窗口使用QSS设置背景之后,若子部件不使用同样的方式来设置,默认则会继承父窗口的样式。 使用QPal...

Hello World 1万+

别再傻傻分不清!5分钟搞懂倾斜摄影里‘地面分辨率’和‘模型精度’到底啥关系

本文深入解析倾斜摄影中‘地面分辨率’与‘模型精度’的关系,帮助读者快速理解两者的本质区别与内在关联。通过实战案例和公式计算,详细说明如何从航飞设计到精度验证全流程控制,避免常见认知误区,并针对不同应用场景提供精度需求建议。

weixin_33700350的博客 477

Qt 设置窗口背景

环境: Qt6.0 参考: http://blog.sina.com.cn/s/blog_a6fb6cc90101f9ec.html#cmt_2376162 Qt 设置窗口背景有三种方式: 使用 QPalette 设置背景 实现 paintEvent, 使用 QPainter 绘制背景 使用 QSS 设置。 其中,使用 QSS 设置窗口背景容易出现问题,原因是口使用QSS设置背景之后,若子部件不使用同样的方式来设置,默认则会继承父窗口的样式。一开始我也是用 QSS 设置的,这也是遇到问题之后,查找资料,

Osenberg WS 2787

Android OTA 更新面试题及参考答案

OTA 更新即空中下载技术(Over-the-Air Technology)更新,是一种通过无线网络对移动设备的系统软件或应用程序进行远程更新的技术手段。其原理是设备通过移动网络或 Wi-Fi 连接到服务器,服务器检测设备上可更新的软件版本,当有新的版本时,将更新包发送到设备上。设备接收后,在后台自动完成更新包的下载、安装等一系列操作,无需用户手动下载完整的系统镜像或应用安装包并通过数据线等方式进行安装。例如,当手机厂商推出新的安卓系统版本或安全补丁时,就会通过 OTA 方式推送给用户。

大模型大数据攻城狮的专栏 1630

【CANdelaStudio编辑CDD】-2.2-给$27服务SecurityAccess创建一个SecurityLevel安全级别并修改SecurityAccess安全访问状态机(UDS诊断)

前一篇: 【UDS诊断描述文件CDD】-2.1-ISO_14229中$27服务理论部分https://blog.youkuaiyun.com/qfmzhu/article/details/120392660 案例背景: 在CDD中如何给$27服务创建一个新的SecurityLevel安全级别; 在CDD中如何给$27服务修改SecurityAccess安全访问状态机。 1 查看$27服务中已有的SecurityLevel安全级别 2 查看$27服务中已有的SecurityAccess安全...

「汽车电子助手」的博客 4642

QT设置窗口背景

窗口背景无非两种:背景色、背景图片。qt中窗口背景设置的方法有三种: 一、QPalette设置背景 二、实现paintEvent,使用QPainter来绘制背景 三、使用QSS来设置背景     关于QSS的使用不想多说,一般我不用QSS设置窗口背景,也不建议使用。(注意:这里是对于窗口而言)。如果是子部件当然可以。因为窗口使用QSS设置背景之后,若子部件不使用同样的方式来

编程论坛 7742

后摄模块辐射超标整改

某行车记录仪在EMI测试中出现辐射超标问题,通过模块剥离法定位到后摄模块的Ethernet数据线为噪声源。深入检查发现TYPE-C延长线屏蔽层未有效接地,形成辐射泄漏通道。整改措施包括加强屏蔽层360°接地、使用导电布改善连接处屏蔽等,最终使辐射降至EN55032 Class B限值以内。案例揭示了高速信号延长线中屏蔽连续性的重要性,建议设计阶段就重视连接器屏蔽设计和共模干扰抑制。

硬核科技 256

Qt共三大方法设置窗口的背景图片

一、重写paintEvent()事件。在该事件中用画笔QPainter的方式画整个背景。 void MainWin::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.drawPixmap(0,0,width(),height(),QPixmap('./wallpaper/11.jpg')); } 二:用调色板QPal...

boyemachao的专栏 1万+

水与光的奇妙“切割之舞”:水导激光切割技术探秘

水导激光切割技术的诞生,是材料加工领域不断追求高精度、高质量加工的成果。传统激光切割技术在加工过程中,材料会因瞬间高温而产生热变形、热影响区大以及切割面粗糙等问题,这些弊端在对一些高精度、热敏性材料的加工中尤为突出 ,迫切需要一种新的技术来克服这些难题。水导激光切割技术的起源可以追溯到 20 世纪 80 年代。1986 年,德国公司 Aesculap-Werke AG 首次提出了将水流引入激光切割过程的创新想法,并制造出首代水导激光设备。不过,当时的技术尚处于雏形阶段,仅仅是在光纤出口添加了一小柱水流,激光

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1673

项目篇 | 图书管理系统 | 管理员模块 | 概述

图书管理系统管理员模块概述

百栗.的博客 405

QT 顶级窗口为QWidget 设置顶级窗口背景无效

今天同事遇到一个问题,就是一个很简单的demo。使用Designer创建了一个顶层窗口QWidget,然后右键设置样式表,将背景设置为红色。这时候看起来一切正常,但是运行起来的时候,背景居然没有更改,也就是设置的CSS样式表并没有生效。 先看一下问题: 1.创建一个叫Form的QWidget窗口。 2.右键设置样式表 #Form { background:red; } 这时候看起来...

漫步繁华街的专栏 2万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Qt 设置窗口的背景图片

Qt 设置窗口的背景图片 一.给Qt窗口设置背景图片 mainwindow.cpp //设置背景图片 path:图片路径 void MainWindow ::setBackgroundImage(QString path) { QPixmap pixmap = QPixmap(path).scaled(this->size()); QPalette palette(thi...

null_plus的博客 7521

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

QT设置非主窗口的背景图片和主窗口的背景图片(详细版)

网上关于设置窗口背景图片大多数都是对于主窗口MainWindow来设置的,很少有关于其他非主窗口背景图片设置的博客,本文主要从styleSheet属性来设置主窗口和非主窗口背景图片。希望拙作能够对各位提供有效的帮助,欢迎大家在评论区探讨问题。...

qwpo135790的博客 2882

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Qt3D 设置窗口背景颜色和图案

目录 设置窗口的颜色 复杂背景的设置 最近在用 Qt3D 做三维显示,需要设置窗口Qt3DWindow背景的颜色, 查了一些资料,做一些整理,备查。 设置窗口的颜色 如果只是最简单的需求设置某一种颜色,可以直接调用 defaultFramGraph()的 setClearColor 方法。 Qt3D...

weixin_30760895的博客 831

QT中 窗口部件的 背景图片 的设置

QT中 窗口部件的 背景图片 的设置

qq_44949732的博客 314

Qt设置Widget窗口背景图片

Qt设置窗口背景图片 1.设置方式一 – 使用重绘事件(最高效) 使用重绘事件来对窗口界面的背景色进行绘制,非常高效,除非遇到语法问题,否则一试一个准(????) 1)声明重绘事件 Qt中的重绘事件是Qt默认的函数,只需要对其自己编写定义,当窗口运行时,程序就会自动调用重绘事件 ,首先我们需要在头文件中声明重绘事件 #include <QPaintEvent> //添加头文件 ... ....

Freedom_Blue的博客 4011
上一篇: Qt 中定义单例对象
下一篇: 使用Qt的QAxObject将Excel文件转成CSV文本文件
e5Max
博客等级 码龄14年 145粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值