pythontkinter:如果菜单使用add\u sep,状态栏不工作

2024-04-25 23:55:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在GUI中创建了一个包含两个选项的菜单,并且在这两个选项之间使用了add\ separator()。还有一个状态栏,用于在鼠标悬停在任何选项上时提供说明。你知道吗

我的问题是,为什么分隔线之后的选项在状态栏中没有提供任何描述?它是否更改了索引位置?你知道吗

def helpMenuStatusBar(self, event = None):
   if self.parent.call(event.widget, "index", "active") == 0:
      self.statusBar.set("Select available files")
   elif self.parent.call(event.widget, "index", "active") == 1:
      self.statusBar.set("About This Application")
   else:
      self.statusBar.set("")

self.helpMenu = Menu(menubar, tearoff = 0, postcommand = self.updateMenu)
self.helpMenu.add_command(label = "Available files", command = self.availableFiles, state = "disabled")
self.helpMenu.add_separator()
self.helpMenu.add_command(label = "About", command = self.onAbout)
menubar.add_cascade(label = "Help", menu = self.helpMenu)
self.helpMenu.bind("<<MenuSelect>>", self.helpMenuStatusBar)

Tags: selfeventadd选项widgetcalllabelcommand
1条回答
网友
1楼 · 发布于 2024-04-25 23:55:28

添加分隔行后,这将作为菜单项之一。所以在这种情况下:

def helpMenuStatusBar(self, event = None):
   if self.parent.call(event.widget, "index", "active") == 0:
      self.statusBar.set("Select available files")
   elif self.parent.call(event.widget, "index", "active") == 2:
      self.statusBar.set("About This Application")
   else:
      self.statusBar.set("")

相关问题 更多 >