wxPython wx.Font类的纠正 · wx.Font教程

前言——Font 类

wx.Font 类在开发中为了设置控件字体,必不可少。然而,对于 Font 字体类的教程很多,却很久远。目前的 wxPython 的 Font 类的一些参数也早有更改,与其不同。而教程中提到的在 wxPython 里虽然还可以使用,但在 IDE 中已经无法检测到,基本标红。而且,上边提到的教程中因为没有与 wxPython 同时更新,少了一大半的样式。在本篇文章中将详细解释,纠正一下错误。
出示一个过时的构造……

上边出示的是一篇 2017 年的文章了。其他的说明大都与此相似。本篇文章将出示的与这一类不同,采用的最新标准,且使用的 wxPython 为 4.1.1 。
当然,也可以在 wxPython 官方的帮助文档 wx.Font

Font 构造及使用

Font 的构造不少,但常用的只有如下两种:

  • Font(fontInfo)
  • Font(pointSize, family, style, weight, underline=False, faceName="", encoding=FONTENCODING_DEFAULT)

现在能看到的除官方外的教程中大多数是第二种(如上文图片)。而其问题则是出在 family style weight 三个参数的取值上。这里我将将两种构造都介绍一遍。其他的构造方式有:

  • Font()
  • Font(font)
  • Font(pixelSize, family, style, weight, underline=False, faceName="", encoding=FONTENCODING_DEFAULT)
  • Font(nativeInfoString)
  • Font(nativeInfo)

这些构造方式可以在官网 wx.Font 上自行学习,这里不再赘述。

构造一 Font(fontInfo)

这种方式只需传一个参数 fontInfo ,而这个参数便是一个 FontInfo 类。了解这种构造方式自然而然就成为了了解 FontInfo 。以下即为 FontInfo 的构造之一。
FontInfo(pointSize)
当然,还有另一种 FontInfo(pixelSize) ,把 pointSize 改成了 pixelSize 。

继续对于 FontInfo(pointSize) 的构造作讲解。
这个参数 pointSize 自然是文字大小,为 float 浮点数对象。

方法

FontInfo 的方法及其作用如下。

  • Bold(bold=True):为字设置粗体样式
  • Light(light=True):为字设置较细样式
  • 等等……

这些基本没有必要全数列举,毕竟构造二更加常用,功能一般更全。详细的讲解在下边的构造二中。

示例

from wx import *

font = Font(FontInfo(10).Bold().Underline())

上边的使用构造一创建的示例,即,创建了一个文字大小( pointSize )为 10 的粗体且带有下划线的字体。

构造二

这便是 Font 设置中最常用的一种,所以在下边会有详细的解释。
Font(pointSize, family, style, weight, underline=False, faceName="", encoding=FONTENCODING_DEFAULT)

  • pointSize :文字大小:float
  • family :字体系列:FontFamily
  • style :文字样式:FontStyle
  • weight :文字粗细:FontWeight
  • underline :是否下划线:bool
  • faceName :字体名:string
  • encoding :文字编码:FontEncoding

其中, FontFamily 、 FontStyle 、 FontWeight 、 FontEncoding 是 wxPython 内置的样式。一下有说明。

FontFamily

  • FONTFAMILY_DEFAULT :默认字体
  • FONTFAMILY_DECORATIVE : 装饰字体
  • FONTFAMILY_ROMAN :衬线字体
  • FONTFAMILY_SCRIPT :手写体
  • FONTFAMILY_SWISS : 无衬线字体
  • FONTFAMILY_MODERN : 等距字体
  • FONTFAMILY_TELETYPE :打字机字体

FontStyle

  • FONTSTYLE_NORMAL :普通,没有倾斜
  • FONTSTYLE_ITALIC :(意大利)斜体
  • FONTSTYLE_SLANT :(罗马)斜体

FontWeight

  • FONTWEIGHT_THIN :最细字体
  • FONTWEIGHT_EXTRALIGHT :极细字体
  • FONTWEIGHT_LIGHT :细体
  • FONTWEIGHT_NORMAL :正常字重
  • FONTWEIGHT_MEDIUM :中等字重(比 FONTWEIGHT_NORMAL 稍粗)
  • FONTWEIGHT_SEMIBOLD :稍粗字体
  • FONTWEIGHT_BOLD :粗体
  • FONTWEIGHT_EXTRABOLD :较粗字体
  • FONTWEIGHT_HEAVY :极粗字体
  • FONTWEIGHT_EXTRAHEAVY :最粗字体

FontEncoding

FontEncoding 有非常多种,在此仅按照对有限的编码作解释,其余的直接列出

  • FONTENCODING_SYSTEM :系统默认编码
  • FONTENCODING_DEFAULT :应用默认编码
  • FONTENCODING_ISO8859_1
  • FONTENCODING_ISO8859_2
  • FONTENCODING_ISO8859_3
  • FONTENCODING_ISO8859_4
  • FONTENCODING_ISO8859_5
  • FONTENCODING_ISO8859_6
  • FONTENCODING_ISO8859_7
  • FONTENCODING_ISO8859_8
  • FONTENCODING_ISO8859_9
  • FONTENCODING_ISO8859_10
  • FONTENCODING_ISO8859_11
  • FONTENCODING_ISO8859_12
  • FONTENCODING_ISO8859_13
  • FONTENCODING_ISO8859_14
  • FONTENCODING_ISO8859_15
  • FONTENCODING_KOI8
  • FONTENCODING_KOI8_U
  • FONTENCODING_ALTERNATIVE
  • FONTENCODING_BULGARIAN
  • FONTENCODING_CP437
  • FONTENCODING_CP850
  • FONTENCODING_CP852
  • ……
  • ……

编码方式过多,这里肯定放不下。wx.FontEncoding 里可以查看。

后记

那么这篇对于 wx.Font 类的纠正兼教程就到此为止了。纠正的部分主要体现于四个枚举的说明。想学习更多 wxPython 知识,欢迎关注专栏 wxPython ~

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
wxPython 是一个流行的 Python 图形用户界面 (GUI) 库,它可以让开发者轻松地创建丰富的窗口应用程序。而 wx.lib.plot 是 wxPython 中提供的一个库,用于在窗口应用程序中绘制图表。 在显示数据标签方面,wx.lib.plot 提供了一个函数叫做 drawValueLabels(),它可以用来在绘制的图表上显示数据标签。 要使用 drawValueLabels() 函数,首先需要创建一个 PlotCanvas 对象,并将绘制的图表添加到该对象中。然后,可以使用该对象的 drawValueLabels() 方法来显示数据标签。 该函数的调用方式如下: ```python plotCanvas.drawValueLabels(labels, labelFont=None, direction='horizontal', reverse=False) ``` 其中,labels 参数是要显示的数据标签,它是一个字典,其中键为数据点的索引,值为对应的标签文本。labelFont 参数用于设置标签的字体,direction 参数用于设置标签的显示方向,可以是 'horizontal'(水平显示)或 'vertical'(垂直显示),reverse 参数用于控制标签的显示顺序。 示例代码如下: ```python import wx import wx.lib.plot as plot app = wx.App() frame = wx.Frame(None, -1, "Plot Example", size=(600, 400)) panel = wx.Panel(frame) # 创建 plot canvas plotCanvas = plot.PlotCanvas(panel) # 创建数据 x = [0, 1, 2, 3, 4] y = [3, 5, 8, 4, 6] # 绘制图表 plotCanvas.DrawBarChart(data=[list(zip(x, y))], xLabel="X", yLabel="Y") # 添加数据标签 labels = {0: 'A', 1: 'B', 2: 'C', 3: 'D', 4: 'E'} plotCanvas.drawValueLabels(labels) panel.Layout() frame.Show() app.MainLoop() ``` 以上示例代码首先创建了一个窗口应用程序,然后在窗口中创建了一个 plot canvas,并绘制了一个条形图。接着,创建了一个标签字典,并调用 drawValueLabels() 函数显示数据标签。最后,显示应用程序并进入主事件循环。 通过以上步骤,我们可以在使用 wxPythonwx.lib.plot 绘制的图表上显示数据标签。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__程序喵__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值