python - 在 gtk3+ for python 中如何获取选定的菜单项或选定的菜单项的索引?

标签 python gtk gtk3

def search(self,button):
    print 'search clicked'
    self.popup_menu=Gtk.Menu()
    s=self.search_field.get_text()
    if s:
        href, title, size, seeders, leechers= scrape_test.main() 
        for i in range(len(href)):

            i1 = Gtk.MenuItem(str(i+1)+'. '+title[i]+' '+size[i]+'       '+seeders[i]+' '+leechers[i])
            self.popup_menu.append(i1)
            print ' '
        self.popup_menu.show_all()
        self.popup_menu.popup(None, None, None, None, 0, Gtk.get_current_event_time())

弹出窗口显示菜单,但我想要获取所选菜单项或所选菜单项的索引。我该怎么做?

最佳答案

据我了解,您必须将处理程序连接到每个 MenuItem 的“activate”事件。像这样的事情:

def search(self):
    print("search clicked")
    self.popup_menu = Gtk.Menu()
    s = "Some text to test "
    if s:
        for i in range(5):
            i1 = Gtk.MenuItem(s + str(i))
            self.popup_menu.append(i1)
            i1.connect("activate", self.item_activated, i)
            print(' ')
        self.popup_menu.show_all()
        self.popup_menu.popup(None, None, None, None, 0, \
                              Gtk.get_current_event_time())

def item_activated(self, wdg, i):
    print('Item activated ', i)

我简化了菜单项的实际文本,因为我没有获取实际文本的函数。

关于python - 在 gtk3+ for python 中如何获取选定的菜单项或选定的菜单项的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29998606/

相关文章:

python - 在点距条件下选择行

lambda - Genie 中 vala lambda 的替代品

C - Gtk3- 开罗 - DrawArea - 平面笛卡尔 - 如何添加文本?

python - Python 3 中类的字符串表示

python - 如何将字符串字典转换为 Python 字典?

Python 作为 Python 应用程序中的最终用户脚本

c - 什么 API 取代了 gtkembedmoz?

c++ - 如何修复错误 "GLib-GIO-ERROR**: No GSettings schemas are installed on the system"?

python - 不显示新添加的 Gtk.Notebook 页面

c - 将 Gif 加载到 Gtk3 Window\C++