Qt 设置Widget背景图片并实现透明度的三种方式
一、场景
在平常的开发过程中,我们常常会遇到需要设置Widget窗口背景图片透明度的方式。一般会有三种方式可以进行设置。
二、方式一(使用图形遮罩功能SetMask函数)
class BackGroundWidget01 : public QFrame
{Q_OBJECT
public:BackGroundWidget01();
};BackGroundWidget01::BackGroundWidget01()
{resize(800,600);QPixmap pixmap(":/images/xingkong01.jpg");QPalette palette;palette.setBrush(this->backgroundRole(),QBrush(pixmap));setPalette(palette);setMask(pixmap.mask()); //可以将图片中透明部分显示为透明的setAutoFillBackground(true);setWindowOpacity(0.9); //设置widget窗体透明度
}
三、方法二(使用paintEvent重绘事件)
class BackGroundWidget02 : public QFrame
{Q_OBJECT
public:BackGroundWidget02(QWidget *parent = 0);private:void paintEvent(QPaintEvent *event);private:};BackGroundWidget02::BackGroundWidget02(QWidget *parent):QFrame(parent)
{resize(800, 600);
}void BackGroundWidget02::paintEvent(QPaintEvent *event)
{Q_UNUSED(event);QPainter painter(this);painter.setOpacity(0.8); //0.7painter.drawPixmap(rect(),QPixmap(":/images/xingkong01.jpg"), QRect());
}
四、方法三(使用setStyleSheet函数)
class BackGroundWidget03 : public QFrame
{Q_OBJECT
public:BackGroundWidget03();private:};BackGroundWidget03::BackGroundWidget03()
{setObjectName("myframe");setStyleSheet("QFrame#myframe{border-image:url(:/images/xingkong01.jpg)}");
}
本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。
Qt 设置Widget背景图片并实现透明度的三种方式相关推荐
- python 图片和二进制转换的三种方式
PIL格式转二进制 先读取为PIL格式,再转为二进制 import io import base64 from PIL import Imagedef image2byte(image):'''图片转 ...
- Qt 设置窗口背景图片的几种方法实例
1.在paintEvent事件中绘制图片 void Widget::paintEvent(QPaintEvent * ev) {QPainter painter(this);painter.drawP ...
- Qt设置按钮背景图片,点击不显示背景
Qt设置按钮为图片样式方法 资源中准备两张不同颜色的图片,qtcreator中右键按钮,选择Change styleSheet,输入如下代码: QPushButton{image: url(:/new ...
- html 如何改变图片形状,图形变换的三种方式是什么?
图形变换的三种方式 1.平移 平移,是指在同一平面内,将一个图形上的所有点都按照某个直线方向做相同距离的移动,这样的图形运动叫做图形的平移运动,简称平移. 平移不改变图形的形状和大小.图形经过平移,对 ...
- Qt 设置窗口背景图片的几种方法
1.在paintEvent事件中绘制图片 void Widget::paintEvent(QPaintEvent * ev) {QPainter painter(this);painter.drawP ...
- Qt设置按钮背景图片
Qt有丰富的样式表,可以很方便的改变界面的风格,下面给出Qt按钮添加图片的方法,直接用setIcon的方法,图片会被缩放,下面的方法正常显示 //设置按钮图标,按钮的默认大小是 30*30,可以自己指 ...
- 图片拉伸的处理的三种方式
纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能.极强的用户体验.华丽简洁的外观.华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设 ...
- c++ Qt 设置widget背景
Qt 可以做什么? Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部:Qt 除了可以绘制漂亮的界面(包括控件.布局.交互),还包含很多其它功能,比如多线程.访问 ...
- css文字在图片下方_【HTML+CSS】文字和图片保持同一水平线的三种方式
方式1.table-cell方式 方式2.flex方式 方式3.absolute方式 css . html < 最终效果 你有什么好的方式呢?欢迎留言
最新文章
- 用户、组的管理常用到的命令介绍
- ASP+Access中文乱码的解决方法,ASP中文乱码,asp乱码问题
- Configure NFS Server On AIX 6.1
- 皮一皮:你更想成为哪个身材...
- C++的几种遍历形式
- oracle取本月最后一天是星期几_Oracle取得本月、本年第一天和最后一天
- wxWidgets:wxDialUpManager类用法
- Linux的实际操作:文件目录类的实用指令(重定向“>“和追加“>>“)
- BGP——权重选路(讲解+配置命令)
- python如何导入numpy简书_如何使用python3.x成功导入numpy?
- JavaScript学习(六十七)—正则表达式学习总结
- javascript 本地存储(cookies、sessionStorage和localStorage解释及区别)
- LeetCode分类-前400题
- 基于VUE的酒店管理系统的设计与实现
- unity android判断是否横屏,android 强制设置横屏 判断是横屏还是竖屏
- 使用excel2007做聚光灯
- jenkins+maven+jmeter.修改jmeter.results.shanhe.me.xsl文件,显示响应信息,请求头等信息.
- C++学习心得:引用的详解
- COGS 2211. [BZOJ3653]谈笑风生
- 《网络基础学习之三》认识网线制作工具