wxPython наследовать шрифт - PullRequest
0 голосов
/ 20 декабря 2011

Как избежать написания для каждого ярлыка:

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

и вместо этого наследовать шрифт от родительского элемента или что-то еще?

Ответы [ 2 ]

2 голосов
/ 20 декабря 2011

Если вы измените шрифт родительского контейнера, вы получите этот шрифт для всех виджетов на нем.Например, при изменении шрифта для экземпляра Frame шрифт изменяется в статическом тексте и флажке без необходимости устанавливать их отдельно:

enter image description here

Afaik, если вы хотите изменить существующийКод, к которому у вас нет доступа, чтобы написать строку SetFont, тогда вам нужно, чтобы эти классы были написаны с учетом этого.Очевидной вещью было бы установить Font в методе вне __init__ в родительском классе, чтобы перезаписать его в вашем классе, который будет наследоваться от класса ограниченного доступа

1 голос
/ 20 декабря 2011

Попробуйте что-то подобное:

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(...)
...