0
在我的小型PyGObject/GTK3應用程序中,我嘗試創建一個由(RadioMenuItem
)組成的(子)菜單。在包含RadioMenuItems的菜單中錯誤地選擇了多個項目
我創建菜單作爲主窗口的__init__
在如下:當我打開菜單,第一次,菜單使用
def button_press(self, widget, event, data=None):
for i in range(1,5):
self.menu_items[i].set_active(False)
self.menu_items[2].set_active(True)
self.menu.popup(None, None, None, None,
event.button, event.time)
menu_item = None
self.menu = Gtk.Menu()
self.menu_items = {}
for i in range(1,5):
menu_item = Gtk.RadioMenuItem(menu_item)
menu_item.set_label(str(i))
self.menu_items[i] = menu_item
self.menu.append(self.menu_items[i])
self.menu_items[i].connect("activate",
self.on_menu_select,
i)
self.menu_items[i].show()
,然後顯示它在button_press_event
處理程序項目「2」正確地是唯一被選中的項目。 當我那時 - 例如 - 選擇菜單項「3」並再次打開菜單時,菜單項2和3都被選中。我究竟做錯了什麼?
謝謝,這解決了我的問題。我以爲我通過使用menu_item = Gtk.RadioMenuItem(menu_item)將舊的menu_item傳遞到新的構造函數中來將它們放入同一組中,但顯然我讀錯了文檔。謝謝! – gnirx 2012-04-29 12:36:10