前面内容,我们详细介绍了PyQt5中弹出式对话框。

回顾下精彩内容

Python用PyQt5制作颜色对话框,PyQt图形界面编程之QColorDialog

Qt图形界面编程之QFileDialog类,Python用PyQt5制作文件对话框

Qt图形界面编程之QFileDialog类,Python用PyQt5制作文件对话框

如何通过Qt界面设置字体属性,Python中PyQt5的QFontDialog类详解

Python用PyQt5制作弹出式输入框,Qt图形界面编程之QInputDialog

今天,我们来详细了解下PyQt5中的一个绘图类QPainter类。

准备好马上开始

01QPaint类简介

我们知道,在Python自带的tkinter库中,有一个Canvas对象,它是用来在屏幕中绘制一些基本图形及图像的。跟tkinter中Canvas很类似,PyQt5也为我们提供了一个非常好用的绘图类QPainter类。

基本图形绘制

该类可以在QWidget控件上执行绘图操作,我们先来看下其继承顺序。

QPainter继承关系

从功能上来看,QPainter类不仅可以绘制一些基本图形(如直线、矩形、圆等),这些功能类似tkinter中的Canvas对象,但是不同于Canvas的地方在于,该类为大部分图形界面提供了高度优化的函数,使用该类可以用少量的代码绘制一些复杂的图形,比如饼图等一些常用的数据统计图。这些我们后续内容会有所涉及。

02如何使用QPainter绘制图形

QPainter类进行绘制操作时,通常情况下是在QWidget.paintEvent()中完成。这点很类似于tkinter中的事件响应函数,paintEvent()一般会在该函数中传入一个event参数,绘制方法必须放在QtGui.QPainter对象的begin()和end()之间(这种语法有点类似Delphi),但是这是一个较低级别的绘图接口。

相对来说比较低

其常用的绘制方法如下

画笔风格也很多

画笔风格定义如下

这个简单,自己试试看。

03QPainter类绘制图形示例

1.绘制一些随机点

使用QPainter绘制随机点

效果如下

效果图展示

好了,今天的内容就到这里了,其他图形绘制,大家自己试试看,对于QPinter中画笔和笔刷类的使用,我们后续专题进行学习。

喜欢Python编程的小伙伴欢迎关注我,后续推出精彩内容。

转载请注明出处,百家号:Python高手养成

python绘制散点图的函数_Python用PyQt5绘制多彩随机散点图,基本控件之QPainter使用详解...相关推荐

  1. python等比例压缩图片_python(PIL)图像处理(等比例压缩、裁剪压缩) 缩略(水印)图详解...

    #coding:utf-8 ''' python图片处理 @author:fc_lamp @blog:http://fc-lamp.blog.163.com/ ''' import Image as ...

  2. python公众号留言功能_Python实现的微信公众号群发图片与文本消息功能实例详解...

    本文实例讲述了Python实现的微信公众号群发图片与文本消息功能.分享给大家供大家参考,具体如下: 在微信公众号开发中,使用api都要附加access_token内容.因此,首先需要获取access_ ...

  3. python从后向前匹配_python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解...

    前言 在许多的情况下,很多要匹配内容是一起出现,或者一起不出现的.比如<>,< >,这样的括号,不存在使用半个的情况.因此,在正则表达式里也有一致性的判断,要么两个尖括号一起出 ...

  4. pythongui日历控件_“五一”快到了,用Python中PyQt5做一个日历,QCalendar控件详解...

    前面内容,我们详细了解了PyQt5中的一些常用控件 精彩内容回顾 Python用PyQt5设计界面,如何正确显示一幅图片,QPixmap控件详解 拥有漂亮的笔刷才能绘制多彩界面,PythonPyQt5 ...

  5. python qt5 增加文本框_Python用PyQt5制作弹出式输入框,Qt图形界面编程之QInputDialog...

    前面内容,我们介绍了PyQt5的一些常用基本控件. 温故而知新 计数器QSpinBox使用详解,Python用PyQt5制作图形界面基础控件篇 Python用PyQt5实现多种弹出消息框,QMessa ...

  6. [Python从零到壹] 十一.数据分析之Numpy、Pandas、Matplotlib和Sklearn入门知识万字详解(1)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  7. [Python从零到壹] 十五.文本挖掘之数据预处理、Jieba工具和文本聚类万字详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. [Python从零到壹] 五十一.图像增强及运算篇之图像灰度直方图对比分析万字详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  9. 六、PyQt5 QTreeWidget操作,获取树控件所有2级目录内容

    新建pyqt5工程目录,添加树控件QTreeWidget,添加4个按钮,分别是添加 .删除.修改.打印树内容按钮,并添加按钮单击消息响应函数. 适用于QTreeWidget树控件只有2级目录内容情况 ...

最新文章

  1. feign返回null_109、Feign的服务降级和Turbine
  2. 不要使用Android Studio的Git Commit了----记一次debug
  3. 【6】JAVA---地址App小软件(QueryPanel.class)(表现层)
  4. jax-ws 生成soap_在Spring中记录JAX-WS SOAP消息
  5. LeetCode 572. 另一个树的子树(二叉树迭代器)
  6. 【Kafka】Flink kafka TimeoutException Timeout expired while fetching topic metadata
  7. Pytorch中expand_as()函数详解
  8. CISA 发布关于 Treck TCP/IP 栈中新漏洞的 ICS 安全公告
  9. Spring Cloud--鸿鹄Cloud分布式微服务云系统—云架构代码结构构建(五)
  10. 15种TBProAudio音乐插件合集包 2021最新
  11. 灵魂一问:一个TCP连接可以发多少个HTTP请求?
  12. 迭代器修改元素_设计模式-迭代器模式
  13. 财务系统软件数据库服务器配置,财务系统软件数据库服务器配置
  14. 【硬件通信协议】2. 详细解析SPI通信协议(标准4线SPI)
  15. win10安装VS2008失败解决方案
  16. undi是什么意思_undefined是什么意思
  17. Make sure that `gem install libv8 -v '3.16.14.3'` succeeds before bundling.
  18. Matlab中ismissing函数的使用
  19. 多元相关性分析_数据分析的方法(三)
  20. elasticsearch安装与配置

热门文章

  1. web前端基础(05htmlimg标签和滚动标签)
  2. python nan判断_Python数据分析:Numpy基本操作
  3. 服务器修改域,服务器修改域名
  4. 第三只眼使用局域网版本还是网络版好_让汽车的“第三只眼”更聪明更安全
  5. 域控计算机策略转换成用户策略,windows组策略实验-本地组策略和域控组策略
  6. Unity2020.1新功能探路:2D设计师工具相关更新
  7. mvc 前段定义变量_3分钟短文 | Laravel blade模板里优雅地定义PHP变量
  8. OpenShift 4 - 用Compliance Operator对OpenShift进行安全合规扫描
  9. 使用开源ASR框架在Mono和.NET C#中进行语音识别
  10. 如何为项目和产品提供资源——优化工作时间、激励团队和预算