2012-10-05 51 views
1

我想創建一個窗口使用PyGTK動態創建的單選按鈕的基礎上的字符串數組(看起來像[「選項1」,「選項2」,「選項3「]將創建3個帶有與數組元素相關標籤的單選按鈕)。PyGTK單選按鈕全部檢查

我的問題是,所有的單選按鈕被選中,他們不能被取消選中,因此我無法連接到「切換」事件。我看不到我做錯了什麼。

class SelectionWindow(Gtk.Window): 

    def __init__(self): 
     global options 
     super(EmulatorSelectionWindow, self).__init__() 
     self.set_title("Select an Emulator") 
     box = Gtk.VBox(spacing=10) 
     group = Gtk.RadioButton(None, "test radio") 
     box.pack_start(group, True,True, 0) 
     for option in options: 
      r = Gtk.RadioButton(group, option) 
      r.connect("toggled", self.on_radio_selection, option) 
      print "before setting active", r.get_active() 
      r.set_active(False) 
      print "after setting active", r.get_active() 
      box.pack_start(r,True, True, 0) 
     self.add(box) 

    def on_radio_selection(self, widget, data=None): 
     print "toggle pressed", data 

調用get_active()打印報表,總是打印真正

[編輯] 我被

from gi.repository import Gtk 

This is my window

回答

3

看來,新加載的Gtk版本您使用靜態方法Gtk.RadioButton.new_with_label_from_widget,而不是您正在使用的方法創建單選按鈕(哪個工作對於pygtk 2.0版本,ks罰款)。嘗試在代碼中更改Gtk.RadioButtonGtk.RadioButton.new_with_label_from_widget
希望這有助於!

+0

這樣做的竅門!謝謝! – vosmith