Python GTK 3 GUI 编程 -- 003 按钮#2 单选框(radio button))

大家好啊, 今天来讲解radio button 单选框

  • 什么是单选框

    • Gtk.RadioButton 继承自 Gtk.CheckButton


      RadioButton
  • 如何创建

    • 首先创建第一个(主), 可以实例化Gtk.RadioBurron类, 还可以调用类的new_with_label(group, label)方法, group就是这个按钮所在的组, 由于这是主按钮, 所以添None
      self.radio = Gtk.RadioButton.new_with_label(None, "Button 1")
    • 创建其他的按钮, 因为单选, 所以这几个按钮需要在一个组里面, 需要调用类的new_from_widget(group) 或者new_with_label_from_widget(group, label), group 就是那个组的主成员所以是self.radio
      self.radio2 = Gtk.RadioButton.new_with_label_from_widget(self.radio, "Button 2")
    • 完整代码
import gi
gi.require_version("Gtk", "3.0")

from gi.repository import Gtk


class MyWindow(Gtk.Window):
    def __init__(self):
        super(MyWindow, self).__init__(title="Radio Button")

        self.radio = Gtk.RadioButton.new_with_label(None, "Button 1")
        self.radio2 = Gtk.RadioButton.new_with_label_from_widget(self.radio, "Button 2")
        self.radio3 = Gtk.RadioButton.new_with_label_from_widget(self.radio, "Button 3")

        self.box = Gtk.Box() # 盒子容器, 放置控件用的, 以后讲
        self.box.pack_start(self.radio, True, False, 0)
        self.box.pack_start(self.radio2, True, False, 0)
        self.box.pack_start(self.radio3, True, False, 0)

        self.add(self.box)


win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()

下面说下radio button的特有属性 (因为继承自check box, 其他属性参考上一篇文章)

  • 属性

    • group 属性, 接受Gtk.RadioButton类型
      • 有什么用呢?
        • 在创建radio button的时候可以直接实例化RadioButton对象 如self.radio = Gtk.RadioButton(label="Button"), 用这个属性在创建其他的radio button时, 就不用调用其他的方法, 直接 self.radio2 = Gtk.RadioButton(group=self.radio, label="Button")
        • 是不是方便了许多(其实并没有), 所以两种方法, 选择自己喜欢的
  • 方法

    • 实例化时调用
      • new_with_label(group, label)
      • new_from_widget(group)
      • new_with_label_from_widget(group, label)
    • 实例方法
      • get_group()
      • join_group(RadioButton或None) 使当前radio button 加入某一组中
      • set_group(RadioButton或None) 和join_group差不多

希望大家喜欢, 欢迎留言
下次讲解 信号机制 (signal)

你可能感兴趣的:(Python GTK 3 GUI 编程 -- 003 按钮#2 单选框(radio button)))