首页 > 编程语言 >wxPython绘图API

wxPython绘图API

时间:2022-11-23 09:34:09浏览次数:32  
标签:__ self dc wxPython API 绘图 255 wx

简单介绍一个Pthon的绘图库wxPython.

GDI+(图形绘制接口),CoreGraphics和Cairo库形成wxPython绘图API的框架。wx.GraphicsContext是主要绘制对象,使用它来创建各种设备上下文对象。

wx.DC是一个抽象类。它的派生类用于渲染的图形和文字在不同的设备。关联设备类 -

  • wx.ScreenDC − 使用它描绘在屏幕上,而不是一个单独的窗口。
  • wx.ClientDC − 使用它描绘在窗口(无边框等装饰的一部分)的客户区域,但不从wxPaintEvent内使用它。
  • wx.PaintDC − 使用它描绘在窗口的客户区域,但只能从wxPaintEvent内。
  • wx.WindowDC − 使用它描绘的窗口,包括装饰的整个区域。这可能不提供对非Windows平台。

wxPython中的绘图API提供不同的功能绘制形状,文字和图像。需要绘制用途,如颜色,画笔,刷子和字体的对象也可以使用GDI类构造。

代码实例:

import wx


class Mywin(wx.Frame):

    def __init__(self, parent, title):
        super(Mywin, self).__init__(parent, title=title, size=(500, 300))
        self.InitUI()

    def InitUI(self):
        self.Bind(wx.EVT_PAINT, self.OnPaint)
        self.Centre()
        self.Show(True)

    def OnPaint(self, e):
        dc = wx.PaintDC(self)
        brush = wx.Brush("white")
        dc.SetBackground(brush)
        dc.Clear()

        # dc.DrawBitmap(wx.Bitmap("python.jpg"), 10, 10, True)
        color = wx.Colour(255, 0, 0)
        b = wx.Brush(color)

        dc.SetBrush(b)
        dc.DrawCircle(300, 125, 8)
        dc.SetBrush(wx.Brush(wx.Colour(255, 255, 255)))
        dc.DrawCircle(300, 125, 5)

        font = wx.Font(18, wx.ROMAN, wx.ITALIC, wx.NORMAL)
        dc.SetFont(font)
        dc.DrawText("Hello wxPython", 200, 10)

        pen = wx.Pen(wx.Colour(0, 0, 255))
        dc.SetPen(pen)
        dc.DrawLine(200, 50, 350, 50)
        dc.SetBrush(wx.Brush(wx.Colour(0, 255, 0), wx.CROSS_HATCH))
        dc.DrawRectangle(380, 15, 90, 60)


if __name__ == '__main__':
    ex = wx.App()
    Mywin(None, 'wxpython test')
    ex.MainLoop()

  运行效果如下:

 

标签:__,self,dc,wxPython,API,绘图,255,wx
From: https://www.cnblogs.com/michael999/p/16917233.html

相关文章

  • devtool.py -- 一个FastAPI的开发环境便捷脚本
     用惯了Django的manage.py所以在FastAPI的项目里,也写了一个类似的脚步:#!/usr/bin/envpythonimportsubprocessimportsysfrompathlibimportPathfromtypingi......
  • Kubernetes_静态Pod网关apiserver的audit审计日志
    前言审计日志是kube-apiserver中比较常见的一种加固手段,通过对每一次请求的行为进行审计,从而达到加固集群的目的,同时,审计日志还能够帮助我们troubleshooting,因为每一次......
  • Talend API Tester安装&使用
    为什么记录这个笔记?国内网站各种黑资料,不是病毒就是收费,所以需要记录一个靠谱的知识元。为了节省空间不提供任何图片,自己找不到拉倒安装说明:https://www.cccitu.com/49......
  • FastAPI使用typing类型提示
    typing是Python标准库,用来做类型提示。FastAPI使用typing做了:编辑器支持;类型检查;定义类型,requestpathparameters,queryparameters,headers,bodies,depende......
  • 【API设计与开发实践】第3篇 API 模型初探,从洋葱模型到细胞模型
    API现有模型API使用情景从前文系列文章看WEBAPI,无论是HTTPAPI,还是RPCAPI,都是一个服务单元。一般软件系统或者平台发布的API包含多个API,这里就有一个API之间......
  • bitconin-cli 私有链搭建及jsonrpc-api
    精通比特币第三章,讲了如何编译等最后搭建成功之后执行:bitcoind-regtest-daemon后台运行私有链,不加-regtest默认公有链,包括之后对私有链操作,加上-regtest即可如果为了以......
  • 常用免费API接口整理
    获取图片验证码:​​http://bjsj.wenxuesucai.com/api/verification?appKey=gzgseyejeneuekeuegeeeseueiev&key=abcd123&codeLength=4&codeType=2&width=300&height=50&bgCo......
  • 如何用App实现巡检业务数字化?以YonBuilder移动开发平台APICloud为例
    巡检是企事业单位的常见场景之一,以消防检查为例,秋冬季节气温下降、生产繁忙,用火、用电、用气情况大量增加,消防安全事件多发,一款消防检查app可以有效减少繁复工作、提升巡......
  • 【访谈】Eolink:通过 API 连接全球企业的数据服务
    采访嘉宾:刘昊臻主持人:马畅   9月,在QECon上海站大会现场,QECon2022年度顶级合作伙伴,EolinkCEO刘昊臻接受了质效前沿的采访。刘昊臻在主会场发表了《API全......
  • java8 (jdk 1.8) 新特性——Stream ApI
    在java8中,有两个最重要的改变,一个就是之前了解的Lmbda java8(jdk1.8)新特性——Lambda ,还有一个就是StreamApi 1.什么是StreamAPI 简单来说就是一个类库,里边......