大家好啊, 今天来讲解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")
- 完整代码
- 首先创建第一个(主), 可以实例化Gtk.RadioBurron类, 还可以调用类的new_with_label(group, label)方法, group就是这个按钮所在的组, 由于这是主按钮, 所以添None
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")
- 是不是方便了许多(其实并没有), 所以两种方法, 选择自己喜欢的
- 在创建radio button的时候可以直接实例化RadioButton对象 如
- 有什么用呢?
- group 属性, 接受Gtk.RadioButton类型
-
方法
- 实例化时调用
- 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)
网友评论