更改Gtk.Button标签的样式/字体

时间:2015-08-27 14:20:27

标签: python python-3.x gtk gtk3

环境:Python 3.4.3,GTK + 3

嘿那里, 我正在尝试使用Gtk.ToggleButton函数编写一个Gtk应用程序,以便能够更改其Label的字体。这是我的例子,我想让标签“有效”,当你点击按钮时,你会得到强大

from gi.repository import Gtk

class TOGGLE_WINDOW:

    def delete_event(self, widget, event, data=None):
        print('delete event occurred')
        return False

    def destroy(self, widget, data=None):
        Gtk.main_quit()

    def __init__(self):
        self.window = Gtk.Window()
        self.window.set_title('Toggle Button Font Change')
        self.window.connect('delete_event', self.delete_event)
        self.window.connect('destroy', self.destroy)

        self.box = Gtk.HBox()
        self.box.set_size_request(400, 50)

        self.toggle = Gtk.ToggleButton(label = 'inactive')
        self.toggle.connect('toggled', self.on_toggled, 'toggle')

        self.box.pack_start(self.toggle, True, True, 0)
        self.window.add(self.box)

        self.window.show_all()

    def on_toggled(self, event, widget):
        state = self.toggle.get_active()

        if state == True:
            self.toggle.set_label('active')
        else:
            self.toggle.set_label('inactive')

    def main(self):
        Gtk.main()

if __name__=='__main__':
    run = TOGGLE_WINDOW()
    run.main()

当我尝试使用外部Gtk.Label来放置Button时,Python说: TypeError:必须是字符串,而不是Label 。 在这种情况下,函数如下所示:

def on_toggled(self, event, widget):
    state = self.toggle.get_active()

    self.label = Gtk.Label()
    self.label.set_markup('<b>active</b>')

    if state == True:
      self.toggle.set_label(self.label)
    else:
      self.toggle.set_label('inactive')

看起来像Buttonlabel只接受字符串。 我还考虑过将文本转换为图片并将其放在Button上,但应该有一种更简单的方法......

感谢你的想法!

0 个答案:

没有答案