wxPython继承字体

发布于 2024-12-21 21:21:35 字数 152 浏览 1 评论 0原文

如何避免为每个标签编写:

static_text.SetFont(wx.Font(...))
static_text.SetForegroundColour(wx.Colour(...))

而是从父元素或其他元素继承字体?

How to avoid writing for each label:

static_text.SetFont(wx.Font(...))
static_text.SetForegroundColour(wx.Colour(...))

and instead inherit the font from parent element or something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

昨迟人 2024-12-28 21:21:35

如果更改父容器的字体,则其上的所有小部件都会获得该字体。例如,更改 Frame 实例的字体,静态文本和复选框中的字体会发生更改,而无需单独设置它们:

在此处输入图像描述

老实说,如果您想修改现有代码,但您无法访问编写 SetFont 行,那么您需要在编写这些类时考虑到这一点。显而易见的事情是在父类中的 __init__ 外部的方法中设置 Font,以便在将从限制访问类继承的类中覆盖它

If you change the font of the parent container you get that font for all the widgets on it. For example changing the font for the Frame instance, font gets changed in the static text and the checkbox without the need to set them separately:

enter image description here

Afaik if you want to modify existing code you can not access to write the SetFont line, then you need these classes to have been written with that in mind. The obvious thing would be to have the Font set in a method outside __init__ in the parent class in order to overwrite it in your class that will be inheriting from the restricted-access class

舂唻埖巳落 2024-12-28 21:21:35

尝试这样的事情:

class Label(wx.StaticText):
    def __init__(self, *args, **kwargs):
        wx.StaticText.__init__(self, *args, **kwargs)
        self.SetFont(wx.Font(...))
        self.SetForegroundColour(wx.Colout(...))
...
static_text = Label(...)

Try something like that:

class Label(wx.StaticText):
    def __init__(self, *args, **kwargs):
        wx.StaticText.__init__(self, *args, **kwargs)
        self.SetFont(wx.Font(...))
        self.SetForegroundColour(wx.Colout(...))
...
static_text = Label(...)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文