我在wxPython中创建了这个下拉菜单:
import wx
class Example(wx.Frame):
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.InitUI()
def InitUI(self):
menubar = wx.MenuBar()
fileMenu = wx.Menu()
fileMenu.Append(wx.ID_NEW, '&New')
fileMenu.Append(wx.ID_OPEN, '&Open')
fileMenu.Append(wx.ID_SAVE, '&Save')
fileMenu.AppendSeparator()
imp = wx.Menu()
imp.Append(wx.ID_ANY, 'Import newsfeed list...')
imp.Append(wx.ID_ANY, 'Import bookmarks...')
imp.Append(wx.ID_ANY, 'Import mail...')
fileMenu.AppendMenu(wx.ID_ANY, 'I&mport', imp)
qmi = wx.MenuItem(fileMenu, wx.ID_EXIT, '&Quit\tCtrl+W')
fileMenu.AppendItem(qmi)
self.Bind(wx.EVT_MENU, self.OnQuit, qmi)
menubar.Append(fileMenu, '&File')
self.SetMenuBar(menubar)
self.SetSize((350, 250))
self.SetTitle('Submenu')
self.Centre()
self.Show(True)
def OnQuit(self, e):
self.Close()
def main():
ex = wx.App()
Example(None)
ex.MainLoop()
if __name__ == '__main__':
main()
我的问题是当鼠标指向文件自动打开所有菜单并看到新建,打开,退出时。请参阅此示例here以了解我想要做什么。
答案 0 :(得分:1)
我相信它超出了跨平台UI库的“精神”,无法改变操作系统的UI行为。
在大多数操作系统中,鼠标悬停时菜单不会自动弹出,因此wxWindows也不会这样做。
可能有一种方法可以让鼠标悬停监听器进入菜单,并自动弹出,但我建议不要这样做,因为这不是通常的行为(许多网站除外)。也可能是不,因为它不能可靠地在wxWindows支持的所有操作系统上运行。
我无法向您提供任何细节,因为我实际上从未使用过wxWindows。我只在Linux上工作,直接GTK更明智。
答案 1 :(得分:1)
您可以使用FlatMenu,一个用纯Python编写的自定义小部件来执行您想要的操作。你自己可以比wxWidgets版本更容易破解它。我们很清楚,wxPython尽可能地包装本机小部件,所以如果这是操作系统上的正常行为,那么wxPython也会这样做。这就是为什么我认为你应该尝试FlatMenu。请参阅此处获取文档和示例:http://xoomer.virgilio.it/infinity77/AGW_Docs/flatmenu_module.html#flatmenu