27黑马QT笔记之QPixmap和QBitmap的区别

2023-10-27

27黑马QT笔记之QPixmap和QBitmap的区别

前提:首先我们先要了解什么是透明和不透明的图片。
1)透明是指显示后与背景颜色一样的。
2)不透明就是有自己的颜色,与背景颜色不一样。
看下图,前者就是透明的,后者是背景是白色的,是不透明的。
在这里插入图片描述
在这里插入图片描述

1 :
QBitmap是QPixmap的一个子类,QPixmap可以彩色绘图,而QBitmap只能绘出黑白两种颜色。

2 代码:
重写绘图事件。
1)头文件只需写:

    //绘图必须重写绘图事件
    void paintEvent(QPaintEvent *event);

2)实现.cpp文件只需写:

void MyWidget::paintEvent(QPaintEvent *event)
{
    QPainter p(this);

    //开始绘图操作
    //用QPixmap、QBitmap绘透明图片
    p.drawPixmap(0,0,100,100,QPixmap("://butterfly.png"));
    p.drawPixmap(100,0,100,100,QBitmap("://butterfly.png"));

    //用QPixmap、QBitmap绘不透明图片 上面用匿名对象 这里用有名对象
    QPixmap pix;
    pix.load(":/butterfly1.png");
    p.drawPixmap(0,150,100,100,pix);

    QBitmap bit;
    bit.load(":/butterfly1.png");
    p.drawPixmap(100,150,100,100,bit);

}

结果:
看下图可以看出,第一行的两张图片是透明图片画出的;第二行两张是不透明画出的。我们可以观察出,QPixmap画透明图片仍是透明,不透明的仍是不透明,例如第一第三张彩色图。而第二张QBitmap画透明图变成了不透明,第四张不透名图又变成了透明,其实QBitmap绘图时,我们不管它是不是能将透明与不透明可以相互转换,我们只需要记住,它只能显示黑白两种颜色就OK了。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

27黑马QT笔记之QPixmap和QBitmap的区别 的相关文章

  • 57黑马QT笔记之数据库的语句执行--插入(包括SQL语句的增删改查和复制表结构)

    57黑马QT笔记之数据库的语句执行 插入 概念 1 回滚 也就是我们常见的事务回滚 例如当我要删除某个数据库时 我开启了一个事务 然后再弹出一个对话框给你 是否提交事务 或者作出事务的回滚 也就是说取消了这个删除的操作 并不会执行到删除数据
  • 27黑马QT笔记之QPixmap和QBitmap的区别

    27黑马QT笔记之QPixmap和QBitmap的区别 前提 首先我们先要了解什么是透明和不透明的图片 1 透明是指显示后与背景颜色一样的 2 不透明就是有自己的颜色 与背景颜色不一样 看下图 前者就是透明的 后者是背景是白色的 是不透明的
  • 45黑马QT笔记之Qt下的Udp的广播和组播

    45黑马QT笔记之Qt下的Udp的广播和组播 1 广播 在使用QUdpSocket类的writeDatagram 函数发送数据的时候 其中第二个参数host应该指定为广播地址 QHostAddress Broadcast此设置相当于QHos
  • 24黑马QT笔记之画背景图

    24黑马QT笔记之画背景图 1 区别不是窗口的显示图片 在窗口中绘图必须重写绘图事件 在绘图事件中绘图 即用到QPainter画家和xxx begin this 函数指定绘图设备 与之前学的区别 下面的代码是在标签中显示图片 只是简单的显示
  • 49黑马QT笔记之利用TCP传输文件

    49黑马QT笔记之利用TCP传输文件 前提 黑马视频的代码第二次不能传输的原因是因为 客户端在第一次传输完成后 isStart false 即第二次无法接收文件信息并打开文件 所以他会出现 write device not open 我们在
  • 60黑马QT笔记之SQLite

    60黑马QT笔记之SQLite 1 与MYSQL的区别 1 SQLite是本地数据库 不需要和MYSQL一样需要连接 2 插入时不支持自动增长 所以主键例如id 在输入时需要自己去控制 3 使用时需要先提前建好后缀为xxx db的文本文件
  • 44黑马QT笔记之IP地址的划分与是否在同一网段

    44黑马QT笔记之IP地址的划分与是否在同一网段 前提 1 网络ID ip地址的第一个字节 2 网络地址 在这里你可以认为它就是网络ID 3 网段 用来区分网络上的主机是否在同一区段内 只要知道ip地址和子网掩码就知道该网段 在局域网中只有
  • 31黑马QT笔记之QPixmap、QImage、QPicture功能大总结

    31黑马QT笔记之QPixmap QImage QPicture功能大总结 QPixmap QImage既可以用于绘图 又可以作绘图设备时保存图片 而QPicture只能用于作绘图设备时保存图片状态 保存前需要用到前两种方法绘图 要显示必须
  • 28黑马QT笔记之QPixmap保存图片

    28黑马QT笔记之QPixmap保存图片 1 QPixmap QImage QPictrue三种绘图工具之间的区别 上一篇我们讲到QPixmap如何在窗口进行绘图 接下来本篇要讲的是QPixmap如何保存一张图片 即将已有图片再按自己方式保
  • 35黑马QT笔记之QFile写文件

    35黑马QT笔记之QFile写文件 1 如何在文本编辑区写内容保存到一个本地文件呢 1 利用文件对话框函数getSaveFileName获取要创建的文件路径 实际上还没真正在电脑创建 只是意味着你要创建的路径 2 将要创建的文件路径与QFi
  • 42黑马QT笔记之Linux下Tcp/Udp通信过程

    42黑马QT笔记之Linux下Tcp Udp通信过程 1 Linux下Tcp通信过程 1 第一次握手 执行connect 2 第二次握手 accept 返回 3 第三次握手 connect 返回 4 共有三个套接字 客户端1个fd 服务端一
  • 23黑马QT笔记之猜数字游戏答案

    23黑马QT笔记之猜数字游戏答案 代码在自己写的day04的第一个项目 想要代码的直接评论 写上自己的邮箱 不要像以前发私信了 因为CSDN有时消息不同步 或者看了之后忘了
  • 47黑马QT笔记之Qt下Udp通信过程例子及实现广播与组播

    47黑马QT笔记之Qt下Udp通信过程例子及实现广播与组播 1 客户端 客户端需要注意一点 客户端没有绑定端口的话 服务端无法发送信息给客户端 Linux下可以是因为他们在同一端口 所以Qt下你也在同一端口内通信 即窗口内自己连自己的Ip和
  • 36黑马QT笔记之QString、QByteArray、char*的互相转换

    36黑马QT笔记之QString QByteArray char 的互相转换 1 直接看代码 if 0 QString gt QByteArray QString str 123 QByteArray array str toUtf8 中文
  • 37黑马QT笔记之QFileInfo提供文件相关信息

    37黑马QT笔记之QFileInfo提供文件相关信息 1 QFileInfo 这个类提供了许多函数给我们查找文件的信息 例如文件名 文件大小等等 对我们进行某些处理相当有用 例如你要对某个目录操作 需要判断它是否为目录 当你需要传输文件内容
  • 07黑马QT笔记之信号重载时connect的写法(带参数的信号)

    07黑马QT笔记之信号重载时connect的写法 带参数的信号 1 首先说这个例子要做的事情 一个窗口有两个按钮 分别为按钮1 按钮2 当我按下按钮2时 他会发射两个信号 这两个信号重载 名字一样 所以当我接收这两个信号并处理时 conne
  • 43黑马QT笔记之Qt下Tcp/Udp通信过程

    43黑马QT笔记之Qt下Tcp Udp通信过程 前提 Qt下的网络通信需要加上 QT newwork 模块 1 Qt下Tcp的通信过程 1 共有三个套接字 客户端有一个QTcpServer监听套接字 服务端有两个 分别是QTcpServer
  • 32黑马QT笔记之QPixmap和QImage的相互转换

    32黑马QT笔记之QPixmap和QImage的相互转换 1 QPixmap与QImage的互相转换 1 头文件 void paintEvent QPaintEvent 2 实现 cpp文件 void Widget paintEvent Q
  • 22黑马QT笔记之事件全总结

    22黑马QT笔记之事件全总结 1 每个控件重写过滤器 event函数 各个事件处理函数都一样 都是先类中声明 类外定义 2 每个控件都可以重写事件过滤器 但是他一般写在窗口 安装时参数要求继承QObject嘛 event函数和各个事件处理函
  • 55黑马QT笔记之关闭子线程

    55黑马QT笔记之关闭子线程 1 这里为什么要单独写多一篇文章来说线程的关闭呢 主要是想让大家提升印象 养成资源回收的好习惯 任何时候都要想起开辟过的内存回收 这里的关闭子线程上一篇也写到了 就是利用关闭窗口时调用槽函数回收掉 2 具体步骤

随机推荐

  • cocos2d-x2.2.3和android平台环境的搭建

    最开始学习cocos2dx 大多数人可能是被复杂的环境配置过程搞死的 尤其是和Android平台搭建这一块 会把人搞疯 而且各个版本也会有不少的差异 我也是参考了很多才在自己的电脑里搭建好的 仅供参考 是基于cocos2d x2 2 3版本
  • Unity 方向键输入 Input.GetAxis() 和Input.GetAxisRaw(),Vertical 与Horizontal

    GetAxis 是个方法 需要传参数 参数为string类型 参数如下 一 触屏类 1 Mouse X 鼠标沿着屏幕X移动时触发 2 Mouse Y 鼠标沿着屏幕Y移动时触发 3 Mouse ScrollWheel 当鼠标滚动轮滚动时触发
  • ML算法——最优化

    文章目录 数学预备知识 1 最优化问题 2 凸优化 2 1 梯度下降 2 2 牛顿法 2 3 阻尼牛顿法 2 4 拟牛顿法 2 5 总结 数学预备知识 1 最优化问题 最优化问题指的是在给定条件下 找到一个目标函数的最优解 即找到能够使目标
  • ubuntu 开启自启

    开机启动界面 安装chrome浏览器 1 2 wget https dl google com linux direct google chrome stable current amd64 deb sudo apt install goo
  • apache的ab命令做压力测试

    1 最基本的关心两个选项 c n 例 ab c 100 n 10000 http 127 0 0 1 index php c 100 即 每次并发100个 n 10000 即 共发送10000个请求 2 测试结果分析 junjie2 log
  • 图像阈值(opencv_python学习)

    图像阈值 简单阈值 自适应阈值 Otsu二值化 简单阈值 cv threshold 函数是 OpenCV 中用于应用阈值处理的函数 具体的语法如下 ret dst cv2 threshold src thresh maxval type d
  • 前言

    程序猿一枚 喜欢写作 喜欢分享 喜欢音乐 喜欢摄影 爱历史 临近毕业 由于学校教的知识太浅且太散 实在不适合应用于工作中 最近这段时间去了个培训班学习嵌入式开发 学成归来 虽然身边的同窗都纷纷投入社会了 但我还是想要缓一缓 利用一段时间来总
  • 美团 2023年春招 JAVA后端开发方向

    分糖 时间限制 3000MS 内存限制 589824KB 题目描述 小美因乐于助人的突出表现获得了者师的嘉奖 老师允许小美从一堆n个编号分别为1 2 n的糖果中选择任意多个糖果作为奖励 每种编号的果各一个 但为了防止小美一次吃太多糖果有害身
  • Delphi实现Windows的气泡提示样式

    其实也不复杂 主要使用到shellAPI下的TNotifyIconData这个结构体 typedef struct NOTIFYICONDATA DWORD cbSize 结构体的大小 以字节为单位 HWND hWnd 窗口的句柄 UINT
  • Python字符串、集合练习_密码校验

    校验密码是否合法 1 输入一个密码要求长度在5 10位 len 2 密码里面必须包含 大写字母 小写字母和数字 字符串方法或者集合 3 最多输入5次 for 用字符串方法实现 for i in range 5 passwd input 请输
  • 数据库分库分表的应用场景及方法分析

    数据库分库分表的应用场景及方法分析 一 数据库经常面临的问题 二 解决方法的思量 三 急剧膨胀的业务及数据量的影响 以电商领域为例 订单库将订单相关的数据 订单销售 订单售后 订单任务处理等数据 都放在一个数据库 中 对于订单的销售数据 性
  • ArrayList和LinkedList的区别

    ArrayList 基于动态数组 连续内存存储 适合下标访问 随机访问 因为里面存的元素的类型是一致的 所以内存长度是固定的 所以很快就能找到具体位置的元素 扩容机制 因为数组长度固定 超出长度存数据时需要新建数组 然后将老数组的数据拷贝到
  • 第一个只出现一次的字符

    在一个字符串 1 lt 字符串长度 lt 10000 全部由字母组成 中找到第一个只出现一次的字符 并返回它的位置 public class Solution public int FirstNotRepeatingChar String
  • 【torch报错】OSError: [WinError 127] The specified procedure could not be found. Error loading

    导入torch等库的时候报错OSError WinError 127 The specified procedure could not be found Error loading E anaconda3 envs py3 10 lib
  • mybatis讲解(2)之动态SQL的运用

    目录 经典面试题 1 mybatis动态sql 2 模糊查询 3种方式 3 查询返回结果集 总结 前言 在我上篇已经学习了Mybatis简介以及如何去连接数据库 具有增删改查的方法 那么我们今天来学习Mybatis的第二节关于1 mybat
  • 涉密服务器监控系统,涉密场所检查时有哪些注意事项?

    对举办涉密会议和活动的场所以及保密要害部门部位的环境进行检查 是保密技术检查的重要内容 涉密场所保密检查主要包括 门禁和监控系统的检查 异常无线信号检查 涉密场所周边环境的安全性检查 涉密场所隐藏电子设备的检查 隐藏摄像设备检查 电源的检查
  • 计算机算法设计与分析期末试题,算法设计与分析期末考试试卷(D卷)(含答案).doc...

    算法设计与分析期末考试试卷 D卷 一 选择题 0分 每题分 D A n2 2 2n的渐进表达式上界函数是O 2n B n2 2 2n的渐进表达式下界函数是 2n C logn3的渐进表达式上界函数是O logn D logn3的渐进表达式下
  • setter方法的内部实现【不要在init和dealloc函数中使用accessor】

    Objective C 2 0 增加了dot syntax 用于简单地调用成员变量的accessor 相当于java的getter和setter 因为正常情况下 写一个accessor对于初学者来说 还是挺容易犯错的 比如有一个NSStri
  • el-table多选+搜索

    一 问题描述 表格数据是一次性从后端获取到了全部的数据 可前端假分页 在模糊检索表格数据时 因为el table的数据源data发生了变化 重新触发了 selection change事件 此时如果仅仅是在 selection change
  • 27黑马QT笔记之QPixmap和QBitmap的区别

    27黑马QT笔记之QPixmap和QBitmap的区别 前提 首先我们先要了解什么是透明和不透明的图片 1 透明是指显示后与背景颜色一样的 2 不透明就是有自己的颜色 与背景颜色不一样 看下图 前者就是透明的 后者是背景是白色的 是不透明的