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

qt窗口标题栏添加背景图片 阅读详情

 方法一:

首先设置 autoFillBackground 属性为真

然后定义一个QPalette对象

设置QPalette对象的背景属性(颜色或图片)

最后设置QWidget对象的Palette

实例:

QWidget *widget =new QWidget;

widget->setAutoFillBackground(true);

QPalette palette;

//palette.setColor(QPalette::Background,QColor(192,253,123));

palette.setBrush(QPalette::Background,QBrush(QPixmap(":/images/background.png")));

widget->setPalette(palette);

 

 

方法二:

QPalette的方法

#include<QApplication>
#include <QtGui>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QFrame *frame =
new QFrame;
frame->resize(400, 700);


QPixmap pixmap11(":/images/frame.png");

QPixmap pixmap = pixmap11.scaled(400,700);


QPalette palette;
palette.setBrush(frame->backgroundRole(),QBrush(pixmap));
frame->setPalette(palette);
frame->setMask(pixmap.mask()); //
可以将图片中透明部分显示为透明的
frame->setAutoFillBackground(
true);
frame->show();

return app.exec();
}

 

 

方法三:

setStyleSheet方法(非常好用的方法 )

设置属性使背景图自动调整来适应控件的大小。

#include<QApplication>
#include <QtGui>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QFrame *frame =
new QFrame;
frame->setObjectName("myframe");
frame->resize(400,700);
frame->setStyleSheet("
QFrame#myframe{ border-image :url(:/images/frame.png)}");
frame->show();

return app.exec();
}

注意代码中红线的部分,设置ObjectName,才能保证setStyleSheet只作用在我们的frame上,不影响其子控件的背景设置。之所以用border-image而不用background-image,还是上面的问题,用background-image不能保证图片大小和控件大小一致,图片不能完全显示。

 

 

方法四:

paintEvent事件方法

//myframe.h文件
#ifndef MYFRAME_H
#define MYFRAME_H

#include <QWidget>
#include <QtGui>

class MyFrame : public QWidget
{
public:
MyFrame();
void paintEvent(QPaintEvent *event);
};

#endif //MYFRAME_H

//myframe.cpp文件
#include "myframe.h"

MyFrame::MyFrame()
{
}

void MyFrame::paintEvent(QPaintEvent *event)
{
QPainter painter(
this);
painter.drawPixmap(0,0,400,700,QPixmap("images/frame.png"));
}

//main.cpp文件
#include <QApplication>
#include <QtGui>

#include "myframe.h"

int main(int argc, char *argv[])
{
QApplication app(argc,argv);

MyFrame *frame =
new MyFrame;
frame->resize(400,700);
frame->show();

return app.exec();
}

这个背景图片不随着窗口的大小而变化,因为它的固定大小被设置成(400,700)了。重写QWidget的paintEvent事件,当控件发生重绘事件,比如show() 时,系统就会自动调用paintEvent函数。

 

如何制作DOS启动盘 U盘制作DOS启动盘 HP-U盘启动DOS7 详细步骤教程 Intel网卡使用软件 bootutil lanconfig eeupdate Intel网卡修改MAC地址教程 制作DOS启动盘不是一项复杂的任务,只要按照以下简单的步骤进行操作,您就可以自己动手制作一个DOS启动盘。 阅读详情

相关推荐

夸克缓存视频合并小工具

原理 使用windows的命令行的copy命令来合并 copy /b 0+1+2+3 new.ts 分析缓存目录结构,发现都是一个m3u8文件带一个同名文件夹 所以分析m3u8并把原来的路径换成这个缓存文件夹路径并按顺序合并即可。 其中碰到的难点是Qprocess在windows不好使,索性直接存成.bat批处理文件再执行 还有就是中文问题,具体在代码里都说了。 代码 (环境Qt5.7.0) 这是mainwindow.h #ifndef MAINWINDOW_H #defin.

natural_Caduceus 1万+

Qt中给窗口添加背景图片

Qt中给窗口添加背景图片的方法有很多,先来总结一下Qlabel添加 一.用Label间接添加窗口背景 在窗口添加一个label放在最底层,然后给Label设置图片,并且让label时刻和窗口保持相同大小的尺寸,就可以达到给窗口添加背景图片的效果 给窗口添加label组件,命名为m_QLabel_BG 首先,声明resizeEvent函数,这是一个在QWidget类中的虚函数,Qwidget-派生...

qq_19286785的博客 8520

cesium自定义指南针

项目需要一个指南针,用鼠标按住旋转指针,会让3d地图旋转,点击中心点重置方位。当然可以使用插件cesium-navigation-es6,但是样式不好修改,所以我自定义了一个指南针。

weixin_47017648的博客 750

Qt的主窗口背景设置

主界面设置背景一般有设置背景图片和背景颜色的需求,其实二者之间设置方法类似 目录 主界面设置背景一般有设置背景图片和背景颜色的需求,其实二者之间设置方法类似 方法一:最简单的方式是通过ui界面来设置,例如设置背景图片 方法二 :通过代码设置窗口的palette属性来实现 方法三:通过重写paintEvent事件,来设置背景图片和背景颜色 方法四:通过代码中设置样式表,其与方法一类似 首先说明一下background-image、border-image、image三种区别 backgroun

yinchengkai的博客 4万+

「转载」vaptcha 等手势验证码图像识别与轨迹提取(思路)

作者:文安哲 从博客重开以后就说要更文章,鸽了蛮久了,赶紧补上一篇嫖嫖各位老公的流量。 最近看群里面大家讨论研究手势验证码比较多,然后我也顺带研究做了一下,给各位老公们分享一下做的过程。 首先,一起来康康手势验证码长啥样! 大概就是长这个样子,需要按照图像中的那条轨迹再图片上滑动,不得不说这类验证码确实体验感拉满,让人很想立马关掉这个网站。 那么言归正传,这类验证码该怎么做识...

AI悦创·编程私教1v1 3597

Unity Shader学习笔记/Urp/水墨风效果

Unity Shader学习

qq_63133691的博客 2117

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

2.做过Qt开发的朋友应该都知道,Qt的子窗体是会继承父窗体的属性的,这就证明了为什么父窗体的背景在子窗体中也会有,这个是对这个原因的一个非常合理的解释。那么问题来了,我们怎么才能做到子窗体不继承父窗体的背景呢?1.在QWidget中这种方法是不行的,如果你足够细心的话,你会发现使用同样的设置背景图片的方法,背景图片其实并没有发生真实改变,但是它的子窗体背景图片是会发生改变的。背景色设置和背景图片设置也是一样的道理,如果不想窗口中的部件颜色和主窗口一样,也是需要#MainWindow来设置限定范围。

宁静致远的博客 2万+

星辰超级智能体TeleClaw桌面版深度体验:央企出品的本地AI生产力助手

中国电信星辰超级智能体TeleClaw桌面版是一款本地化AI生产力助手,主打数据安全、自主高效和深度协同。作为程序员,作者实测其核心功能包括本地数据处理、长期记忆、定时任务和代码开发辅助,特别适合敏感数据处理和日常办公自动化。相比在线AI工具,TeleClaw在数据安全、合规性和自动化能力方面优势明显,但技能生态和响应速度仍有提升空间。总体评价为务实高效的本地AI助手,尤其适合对数据安全有要求的企业用户。

研究中.... 1350

Qt之设置窗口背景

以前遇到的很多小知识,从今天开始都一点一点记录下来。。。     窗口背景无非两种:背景色、背景图片。Qt中窗口背景如何设置?下面介绍三种方法: 一、QPalette设置背景 二、实现paintEvent,使用QPainter来绘制背景 三、使用QSS来设置背景     关于QSS的使用不想多说,一般我不用QSS设置窗口背景,也不建议使用。(注意:这里是对于窗口而言)

imxiangzi的专栏 1551

经纬度转换为UTM坐标

UTM(通用横向墨卡托投影): 是一种以米为单位的坐标系统,用于地图和GPS导航。将地球划分为60个纵向的区域。每个区域宽6度,从赤道开始往南北两级方向划分。每个区域都有一个特定的字母。

weixin_45626706的博客 7275

Kappa函数:测量一致性并计算置信区间的R语言包

Kappa函数是一种常用的统计量,用于衡量两个评估者之间的一致性。在R语言中,有一个名为"vcd"的包提供了计算Kappa函数以及相应的置信区间的功能。本文将介绍如何使用"vcd"包来计算Kappa函数的值,并进一步计算置信区间。Kappa函数的值介于-1和1之间,值越接近1表示评估者之间的一致性越高,值越接近-1表示评估者之间的一致性越低,值接近0表示评估者之间的一致性接近于随机。通过以上步骤,我们成功地使用R语言中的"vcd"包计算了Kappa函数的值和置信区间。接下来,我们可以使用"vcd"包中的。

2301_79331230的博客 1875

Qt三种方式实现背景色和背景图(都可放缩,qss方式也可以)

前言:窗口背景无非两种,及背景颜色、背景图片。Qt中窗口背景如何设置?总结以下三种方法。   1、QPalette设置背景 2、实现paintEvent,使用QPainter来绘制背景 3、使用QSS来设置背景 --------------------------------------------------------------- 关于QSS(样式表)的使用不想多说,一般我不用Q...

tt_137062185的专栏 2万+

【PostgreSQL】PostgreSQL数据库函数比对模板(PG通用)

LOOKUP 函数从单行或单列区域 (区域:工作表上的两个或多个单元格。区域中的单元格可以相邻或不相邻。)或数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。LOOKUP 函数具有两种语法形式:向量形式和数组形式。vlookup查找匹配值超过255个字符显示#Value的解决办法。如果值为错误值 #N/A,则返回 TRUE。

tttzzzqqq2018的博客 1493

qt设置背景图片注意事项

QT Create中,对button或者window等部件设置背景、颜色、透明等样式时,需要用到style sheet,可以直接在代码里写,也可以在ui设计师里通过右键change style sheet的方法来设置,本人是使用的后面的方式,下面介绍几种常见的用法。   介绍:       作者使用的开发环境为:qt creator 201005, qt4.7。       1、利用s

Allen Roson 2122

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

自定义QT窗口部件外观

重新定义Qt内置窗口部件的外观常用的方法有两种:一是通过子类化QStyle 类或者预定义的一个样式,例如QWindowStyle,来定制应用程序的观感;二是使用Qt样式表。   QStyle 类的使用 1.      准备必要的背景图片。在你想添加自定义风格的工程目录下新建一个文件夹“images”,将背景图片等放入文件夹“images”。 2.      点击Qt Cre

u013189731的专栏 950

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

qt中关于QWidget的背景颜色和背景图片的设置

首先设置autoFillBackground属性为真 然后定义一个QPalette对象 设置QPalette对象的背景属性(颜色或图片) 最后设置QWidget对象的Palette 实例: QWidget *widget = new QWidget; widget->setAutoFillBackground(true); QPalette palette; palette

MoMo_KUA_1的专栏 1342

qt样式表设置边框_QT__stylesheet__操作 QT皮肤编程(QT style sheet)总结Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleS...

摘要:QT Create中,对button或者window等部件设置背景、颜色、透明等样式时,需要用到style sheet,可以直接在代码里写,也可以在ui设计师里通过右键change style sheet的方法来设置,本人是使用的后面的方式,下面介绍几种常见的用法。介绍:作者使用的开发环境为:qt creator 201005, qt4.7。1、利用style sheet给窗体设置背景使用s...

weixin_33644222的博客 1858

qt 关闭对话框 提醒_qt对话框的关闭事件

(创建类对象): QColorDialog dialog(Qt::red,this); dialog.setOption(QColorDialog::ShowAlphaChannel); dialog.exec(); QColor color = dialog.currentColor......QT 对话框添加背景图片的方法 1. QPalette 的方法 #include...findDlg-...

weixin_39856607的博客 1302

windows Qt 设置QWidget不显示图片之解决办法

pWidget->setStyleSheet("background-image:url(:/bmp/IMG_0345.JPG)"); 假使这个pWidget继承自QWidget,而且是顶层窗口,则不会显示图片。解释如下:qt三大窗体部件 QMainwindow, QDialog, QWidget之间的关系,QMainwindow, QDialog继承于QWidget,而QWi...

sz76211822的专栏 3122

Qpalette实用例二则

Qpalette实用例二则 所有的Qt窗口部件都有一个Qpalette,并使用它绘制自己。应用程序还有一个调色板,通过Qapplication::palette()来获得,修改一个窗口部件的调色板,只影响这个窗口部件以及子窗口部件(不包含子窗口),而修改应用程序的调色板,会影响到该应用程序的所有窗口部件。 1、窗体控件设置背景图片 窗体 QPalette palette; palet

梦之旅的专栏 523
上一篇: QT给我们的窗口添加背景图片
下一篇: QMetaObject::connectSlotsByName: No matching signal error
duloveding
博客等级 码龄17年 38粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值