实战wxPython:056 - GDI基本元素之颜色Colour

2023-11-18

GDI系统中的设备上下文包含一些基本元素,例如颜色,画刷,画笔或字体等等。wx.Colour定义设备上下文中对象显示的颜色。wx.Brush是一个用于填充区域的绘图工具,它用于绘制形状的背景,它有颜色和风格。wx.Pen用于绘制形状的轮廓,它有颜色、宽度和样式。wx.Font则是一个决定文本外观的对象。

一、wx.Colour简介

wx.Colour是表示红、绿、蓝(RGB)强度值和Alpha值组合的对象,用于确定绘图颜色。有效的RGB和Alpha值范围为0 ~ 255。

可以使用wx.Colour类来定义各种各样的颜色。例如可以使用SetTextForeground和SetTextBackground函数来定义一个设备上下文中文本的颜色,也可以使用wx.Colour来创建画笔和刷子。

有多种方法来创建wx.Colour对象,例如可以使用RGB三元色的值(0到255)来构建wx.Colour,或者通过一个标准的字符串,比如WHITE或者CYAN,或者从另外一个wx.Colour对象创建。还可以直接使用系统预定的颜色对象指针: wx.BLACK, wx.WHITE, wx.RED, wx.BLUE, wx.GREEN, wx.CYAN,和 wx.LIGHT_GREY等。使用wx.NullColour对象用来代表未初始化的颜色对象。

可以使用wx.SystemSettings类可以获取很多系统默认的颜色,比如3D表面颜色,默认的窗口背景颜色,菜单文本颜色等等。

下面列出了目前支持的标准颜色:aquamarine, black, blue, blue violet, brown, cadet blue, coral, cornflower blue, cyan, dark gray, dark green, dark olive green, dark orchid, dark slate blue, dark slate gray, dark turquoise, dim gray, firebrick, forest green, gold, goldenrod, gray, green, green yellow, indian red, khaki, light blue, light gray, light steel blue, lime green, magenta, maroon, medium aquamarine, medium blue, medium forest green, medium goldenrod, medium orchid, medium sea green, medium slate blue, medium spring green, medium turquoise, medium violet red, midnight blue, navy, orange, orange red, orchid, pale green, pink, plum, purple, red, salmon, sea green, sienna, sky blue, slate blue, spring green, steel blue, tan, thistle, turquoise, violet, violet red, wheat, white, yellow, 和 yellow green。

wx.Colour常用方法

  • Red(self):返回红色值。
  • Green(self):返回绿色值。
  • Blue(self):返回蓝色值。
  • Alpha(self):返回alpha值,在不支持alpha的平台上,它总是返回wx.ALPHA_OPAQUE。
  • GetRed(self):返回红色值。
  • GetGreen(self):返回绿色值。
  • GetBlue(self):返回蓝色值。
  • GetRGB(self):获取单个32位值的RGB或RGBA颜色值。注意,GetRGB返回的值以0作为其最高字节,独立于Alpha实际返回的值。所以对于完全不透明的颜色,GetRGBA的返回值是0xFFBBGGRR,而GetRGB的返回值是0x00BBGGRR。
  • GetRGBA(self):获取单个32位值的RGB或RGBA颜色值。注意,GetRGB返回的值以0作为其最高字节,独立于Alpha实际返回的值。所以对于完全不透明的颜色,GetRGBA的返回值是0xFFBBGGRR,而GetRGB的返回值是0x00BBGGRR。
  • GetLuminance(self):返回颜色亮度值(公式: 0.299*R+0.587*G+0.114*B)。
  • Set (self, red, green, blue, alpha=ALPHA_OPAQUE):使用给定值设置RGB值。
  • Set (self, RGB):使用给定值设置RGB值。
  • Set (self, str):使用类似html的语法:”#”后面跟着6个十六进制数字,分别表示红、绿、蓝分量的字符串来设置RGB值, 或者使用系统预定义的颜色字符串如wx.Colour(“pale green”)来设置。
  • SetRGB(selfcolRGB):从单个32位值设置RGB或RGBA颜色值。数colRGB和colRGBA应该分别采用0x00BBGGRR和0xAABBGGRR的形式,其中0xRR、0xGG、0xBB和0xAA是红色、绿色、蓝色和alpha分量的值。
  • SetRGBA(selfcolRGBA):从单个32位值设置RGB或RGBA颜色值。数colRGB和colRGBA应该分别采用0x00BBGGRR和0xAABBGGRR的形式,其中0xRR、0xGG、0xBB和0xAA是红色、绿色、蓝色和alpha分量的值。

二、演示

下面的例子演示了如何使用颜色值。

#颜色(wx.Colour)

import wx

class SampleColour(wx.Frame):

    def __init__(self, *args, **kw):
        super(SampleColour, self).__init__(*args, **kw)

        self.InitUi()

    def InitUi(self):
        self.SetTitle("实战wxPython: GDI-颜色")
        self.SetSize(400, 320)

        self.Bind(wx.EVT_PAINT, self.OnPaint)

        self.Centre()

    def OnPaint(self, e):
        dc = wx.PaintDC(self)
        dc.SetPen(wx.Pen("#d4d4d4"))

        dc.SetBrush(wx.Brush(wx.BLUE))
        dc.DrawRectangle(30, 15, 90, 60)

        dc.SetBrush(wx.Brush(wx.GREEN))
        dc.DrawRectangle(150, 15, 90, 60)

        dc.SetBrush(wx.Brush(wx.RED))
        dc.DrawRectangle(270, 15, 90, 60)

        dc.SetBrush(wx.Brush(wx.Colour("dark gray")))
        dc.DrawRectangle(30, 105, 90, 60)

        dc.SetBrush(wx.Brush(wx.Colour("magenta")))
        dc.DrawRectangle(150, 105, 90, 60)

        dc.SetBrush(wx.Brush(wx.Colour("medium goldenrod")))
        dc.DrawRectangle(270, 105, 90, 60)

        dc.SetBrush(wx.Brush('#5f3b00'))
        dc.DrawRectangle(30, 195, 90, 60)

        dc.SetBrush(wx.Brush('#4c4c4c'))
        dc.DrawRectangle(150, 195, 90, 60)

        dc.SetBrush(wx.Brush('#785f36'))
        dc.DrawRectangle(270, 195, 90, 60)

def main():
    app = wx.App()
    sample = SampleColour(None)
    sample.Show()
    app.MainLoop()

if __name__ == "__main__":
    main()

上面的实例我们使用三种不同的颜色设置方法进行画刷的颜色填充,使用DrawRectangle()方法绘制矩形。

 图1:wx.Colour演示

三、本文知识点

  • 了解设置wx.Colour演示的三种方法。
  • 了解系统内建颜色字符串。
  • 为画笔和画刷设置颜色。

前一篇:实战wxPython:055 - GDI系统简介

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

实战wxPython:056 - GDI基本元素之颜色Colour 的相关文章

随机推荐

  • 微信小程序---目录结构

    一 总体目录 大体介绍 1 在utils中定义方法 工具等 主要使用common js暴露接口 2 pages中放我们的页面 3 eslintrc js文件在代码质量审查的时候的代码依赖 4 app js app json app wxss
  • 锚点定位的三种解决方法

    一 学习锚点定位之前的知识储备 1 1 号的作用 代表网页中的一个位置 其右面的字符 就是该位置的标识符 比如 http www example com index html print 就代表网页index html的print位置 浏览
  • Mac 扬声器热插拔

    与windows的IMM接口类似 Mac也采用注册 监听回调的方式来拿到各种设备的插入 拔出 设备采样率 声道的变化等事件 以下以Mac扬声器插拔为例 include
  • Android Studio下修改Module名称

    最近才开始使用Android Studio 相比Eclipse AS有它的亮点和特色 也有它的不足 AS对项目目录的管理说实话我是真的不太喜欢 也可能是才开始用不太习惯吧 好了 废话不多说 闲话少续 下面开始正文 相信大家在使用AS创建Pr
  • tiled卷积神经网络(tiled CNN)

    这个结构是10年Quoc V Le等人提出的 这里的tiled 按照 Lecun的解释是Locally connect non shared 即是局部连接 而且不是共享的 这是针对于权重来说的 本文翻译如有错误 还望指正 谢谢 这篇论文是1
  • 【Vue】前端状态管理之Vuex全解析

    Vuex状态管理全解析 一 状态管理 1 1 状态管理是什么 1 2 为什么要用状态管理 1 2 1 生活中的例子 1 2 2 代码中的例子 1 3 三大框架的状态管理 二 Vuex 2 1 Vuex是什么 2 2 使用Vuex的好处 三
  • struct和typedef struct彻底明白了

    struct和typedef struct 分三块来讲述 1 首先 注意在C和C 里不同 在C中定义一个结构体类型要用typedef typedef struct Student int a Stu 于是在声明变量的时候就可 Stu stu
  • leetcode分类刷题:哈希表(Hash Table)(一、简单的两数之和)

    1 当需要快速判断某元素是否出现在序列中时 就要用到哈希表了 2 本文针对的总结题型为简单的两数之和问题 这种题目的难易程度取决于求解的目标 如果需要返回的是答案的索引 个数 那么就相对简单一些 如果需要返回答案的值构成的二元组 三元组之类
  • 通过网页版堡垒机访问服务器失败,堡垒机远程连接服务器被拒绝

    堡垒机远程连接服务器被拒绝 内容精选 换一换 云堡垒机配置了FTP SFTP远程备份 报请检查服务器密码或网络连接情况错误 不能启动远程备份 选择备份具体某一天日志 提示备份正在执行 但远程服务器未接收到该备份文件 原因一 云堡垒机配置的F
  • Ajax中的XMLHttpRequest对象详解

    原文地址 http www cnblogs com shunyao8210 archive 2008 11 24 1339718 html XMLHttpRequest对象是Ajax技术的核心 在Internet Explorer 5中 X
  • vlfeat 特征检测

    https blog csdn net wangxinsheng0901 article details 79676081 https github com dougalsutherland vlfeat ctypes
  • 【电脑配置】1、Chrome 设置深色模式

    1 在 Chrome 页面地址输入 chrome flags enable force dark 2 将 Dark Mode 设置为 Enabled 3 点击 Relaunch
  • Copy 数据到ppt 中保持对齐

    Copy 一组数据到PPT里 但是有可能在PPT里无法对齐 可以先拷贝到xls里 各个数据项会对齐到单元格 再拷贝到PPT后 这里即可对齐
  • Apifox生成接口文档

    一 http接口 点击添加接口 编辑接口相关信息 点击保存 点击修改文档 点击智能识别 请求示例智能识别 编辑请求参数信息 返回响应智能识别 可添加多个 成功 异常A 异常B等 编辑响应参数信息 添加响应示例 参照返回响应添加 点击保存 接
  • python书写格式_python并的写法

    广告关闭 腾讯云11 11云上盛惠 精选热门产品助力上云 云服务器首年88元起 买的越多返的越多 最高返5000元 最近倒腾python 希望能坚持下去吧发现了个叫codecademy的网站 还不错http www codecademy c
  • 服务器内部操作系统,服务器内部操作系统

    服务器内部操作系统 内容精选 换一换 Atlas 800 训练服务器 型号 9000 安装上架 服务器基础参数配置 安装操作系统等操作请参见 Atlas 800 训练服务器 用户指南 型号9000 风冷 或 Atlas 800 训练服务器
  • Java——string[] 和List的区别

    一直对string 和List
  • JavaWeb之综合小项目

    案例需求 使用Java程序操作数据库 并把结果显示在jsp页面上 这里只做查询操作 增删改操作类似如此 使用工具 maven idea tomcat MySQL数据库 使用技术 javabean servlet jsp 准备阶段 第一步 使
  • 求全排列的数学方法(洛谷1088 火星人noip2004普及组第4题)

    人类终于登上了火星的土地并且见到了神秘的火星人 人类和火星人都无法理解对方的语言 但是我们的科学家发明了一种用数字交流的方法 这种交流方法是这样的 首先 火星人把一个非常大的数字告诉人类科学家 科学家破解这个数字的含义后 再把一个很小的数字
  • 实战wxPython:056 - GDI基本元素之颜色Colour

    GDI系统中的设备上下文包含一些基本元素 例如颜色 画刷 画笔或字体等等 wx Colour定义设备上下文中对象显示的颜色 wx Brush是一个用于填充区域的绘图工具 它用于绘制形状的背景 它有颜色和风格 wx Pen用于绘制形状的轮廓