gpt4 book ai didi

python:右键单击列表菜单不显示所选项目

转载 作者:行者123 更新时间:2023-11-28 18:54:33 26 4
gpt4 key购买 nike

在我不断努力学习更多关于 python 的过程中,我正在尝试向我的 mp3 管理器程序添加一个右键单击事件。目前有效的是它显示菜单和所有选项。不起作用的是从菜单中选择的功能没有按照我认为应该的那样执行。大部分代码取自另一个网站上的“操作方法”。

这里是右键菜单选项

menu_titles = ["Remove Selection from list",
"Delete Selection from system",
"Move Selection",
"Copy Selection",
"Print Selection"]

menu_title_by_id = {}
for title in menu_titles:
menu_title_by_id[ wxNewId() ] = title

右键单击事件发生时运行的代码

def RightClickCb( self, event ):
# record what was clicked
self.list_item_clicked = right_click_context = event.GetText()

### 2. Launcher creates wxMenu. ###
menu = wxMenu()
for (id,title) in menu_title_by_id.items():
### 3. Launcher packs menu with Append. ###
menu.Append( id, title )
### 4. Launcher registers menu handlers with EVT_MENU, on the menu. ###
EVT_MENU( menu, id, self.MenuSelectionCb )

### 5. Launcher displays menu with call to PopupMenu, invoked on the source component, passing event's GetPoint. ###
self.MainPanel.PopupMenu( menu, event.GetPoint() )
menu.Destroy() # destroy to avoid mem leak

def MenuSelectionCb( self, event ):
# do something
operation = menu_title_by_id[ event.GetId() ]
target = self.list_item_clicked
print 'Perform "%(operation)s" on "%(target)s."' % vars()

当我右击然后选择菜单中的一个选项时我期望得到的是输出

Perform "Print Selection" on "<data about the selection here>"

我得到的是

Perform "Print Selection" on "."

如何从我选择的项目中获取数据作为我的右键单击事件的一部分?

最佳答案

也许您应该使用 event.GetString() 代替 event.GetText()

参见 here

你的代码似乎过时了,绑定(bind)到事件应该像这样完成:

menu.Bind(wx.EVT_MENU, self.MenuSelectionCb, id=id)

此外,如果您将所有 ID 绑定(bind)到同一个函数,您只需为所有 ID 绑定(bind)一次:

menu.Bind(wx.EVT_MENU, self.MenuSelectionCb)

关于python:右键单击列表菜单不显示所选项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5460030/

26 4 0