PyGTK - Lớp RadioButton
Một widget RadioButton cung cấp chức năng tương tự như CheckButton. Tuy nhiên, khi có nhiều nút radio trong cùng một vùng chứa, thì người dùng sẽ có lựa chọn loại trừ lẫn nhau để người dùng chọn từ một trong các tùy chọn có sẵn. Nếu mọi nút radio trong vùng chứa thuộc cùng một nhóm, thì khi một nút được chọn, các nút khác sẽ tự động bị bỏ chọn.
Sau đây là một hàm tạo của lớp gtk.RadioButton:
gtk.RadioButton(group = None, Label = None, unerline = None)
Để tạo một nhóm nút, hãy cung cấp group=None đối với nút Radio đầu tiên và đối với các tùy chọn tiếp theo, hãy cung cấp đối tượng của nút đầu tiên dưới dạng nhóm.
Như trong trường hợp ToggleButton và CheckButton, RadioButton cũng phát ra the toggled signal. Trong ví dụ dưới đây, ba đối tượng của tiện ích gtk.RadioButton được đặt trong một VBox. Tất cả chúng được kết nối với một hàm gọi lại on_selected (), để xử lý tín hiệu đã bật tắt.
Hàm gọi lại xác định nhãn của widget RadioButton nguồn và hiển thị nó trên nhãn được đặt trong VBox.
Thí dụ
Quan sát đoạn mã sau:
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Radio Button")
self.set_default_size(250, 200)
self.set_position(gtk.WIN_POS_CENTER)
vbox = gtk.VBox()
btn1 = gtk.RadioButton(None, "Button 1")
btn1.connect("toggled", self.on_selected)
btn2 = gtk.RadioButton(btn1,"Button 2")
btn2.connect("toggled", self.on_selected)
btn3 = gtk.RadioButton(btn1,"Button 3")
btn3.connect("toggled", self.on_selected)
self.lbl = gtk.Label()
vbox.add(btn1)
vbox.add(btn2)
vbox.add(btn3)
vbox.add(self.lbl)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_selected(self, widget, data=None):
self.lbl.set_text(widget.get_label()+" is selected")
if __name__ == '__main__':
PyApp()
gtk.main()
Đoạn mã trên sẽ tạo ra kết quả sau: