如果我有一個wx.Menu(在wx.MenuBar中,在框架的頂部,就像正常一樣) - 我怎樣才能使菜單下降,集中精力,不用點擊它。我想要的行爲是因爲,如果用戶已經按下該菜單中的鍵盤快捷鍵快捷鍵(這樣按Alt + F例如,對於&文件菜單)如何以編程方式在wxPython中下拉wx.Menu
3
A
回答
1
嘗試用wx.PostEvent:
event = wx.MenuEvent(wx.wxEVT_LEFT_DOWN, menuitem.GetId(), menu)
wx.PostEvent(frame, event)
其他WX鼠標事件:http://www.wxpython.org/docs/api/wx.MouseEvent-class.html
+0
其實,我想要的是菜單下拉並顯示其內容,而不是以編程方式觸發如果我點擊了特定的菜單項會發生什麼情況。 – Ryan
0
發現定義爲在程序菜單快捷鍵,通過給定的例子瞭解
例如:
file_menu=wx.Menu()
menubar=wx.MenuBar()
menubar.Append(file_menu,"&File")
self.SetMenuBar(menubar)
現在我們可以按Alt + F訪問文件菜單(在這裏)。
如果我們還有其他菜單,按ALT後,它會指向菜單欄的第一個字母,從中可以按menu_item的名稱按下一個鍵。
1
我有相同的要求,並找到使用PopupMenu函數的簡單方法。它不從菜單對象調用,而是從菜單的父級(窗口,框架等)中調用。
要確保菜單出現在特定位置(無論您的鼠標是否在指定位置),請將其提供給PopupMenu函數也是一個位置參數。
在下面的示例中,我轉動了一個打開菜單的platebtn,只有在向右箭頭的小區域右側點擊時,打開菜單時纔會打開一個按鈕,該按鈕以同樣的方式打開相同的菜單它的表面上的任何地方。
例子:
import wx
import wx.lib.platebtn as platebtn
class MyFrame(wx.Frame):
def __init__(self, parent, ID, title):
wx.Frame.__init__(self, parent, ID, title, size=(300, 250))
wx.Panel(self,-1, style=wx.SUNKEN_BORDER)
droparrow = platebtn.PB_STYLE_DROPARROW | platebtn.PB_STYLE_SQUARE | platebtn.PB_STYLE_GRADIENT
self.btn1 = platebtn.PlateButton(self, wx.ID_ANY, label=" File ", style=droparrow)
self.btn1.SetPressColor(wx.LIGHT_GREY)
self.menu1 = wx.Menu()
self.menu1.Append(1, "New")
self.menu1.Append(2, "Open")
self.menu1.Append(3, "Exit")
sm = wx.Menu()
sm.Append(8, "sub item 1")
sm.Append(9, "sub item 1")
self.menu1.AppendMenu(7, "Test Submenu", sm)
self.btn1.SetMenu(self.menu1)
self.Bind(wx.EVT_BUTTON, self.OnFile, self.btn1)
def OnFile(self, event):
self.btn1.PopupMenu(self.menu1, pos=(1, self.btn1.GetSize()[1]))
app = wx.App(False)
frame = MyFrame(None, -1, "PopupMenu example")
frame.Show()
app.MainLoop()
相關問題
- 1. 如何在VB.NET中以編程方式單擊下拉箭頭?
- 2. 如何以編程方式設置jQuery下拉列表的值?
- 3. 如何以編程方式下拉TcxDateEdit控制日曆?
- 4. ActionBarSherlock SearchView - 如何以編程方式顯示下拉菜單
- 5. 如何以編程方式滾動下拉菜單
- 6. 綁定在網格視圖中以編程方式下拉
- 7. 以編程方式在vb.net中創建下拉菜單WPF
- 8. 如何以編程方式按下tooltripbutton?
- 9. 如何以編程方式關閉wxPython框架?
- 10. 如何以編程方式在Excel表格中添加下拉菜單?
- 11. Semantic UI React,如何以編程方式在下拉菜單中選擇值?
- 12. 如何以編程方式在導航欄中添加下拉菜單?
- 13. 以編程方式從回調中以編程方式開始下載在IE
- 14. 以編程方式編輯Excel下拉項目
- 15. 以編程方式從Excel下拉菜單中選擇
- 16. 以編程方式選擇kendo下拉列表中的值
- 17. 以編程方式將UITextField添加到下拉列表中
- 18. 如何在asp.net中以編程方式使下拉列表在擴展模式下
- 19. 如何以編程方式在SharePoint中下載文檔?
- 20. 如何以編程方式下載大文件在C#中
- 21. 如何下載以編程方式在iOS中的地圖
- 22. 如何以編程方式選擇下拉列表中的jQuery Mobile的
- 23. 如何以編程方式更改此下拉菜單中的選定項目?
- 24. 如何以編程方式滾動引導程序下拉菜單
- 25. 如何以編程方式打開引導程序下拉菜單?
- 26. 如何以編程方式取消最大化wxPython中的框架?
- 27. 如何以編程方式關閉datetimepicker的下拉日曆或更新下拉日曆以反映.Value屬性?
- 28. 如何以編程方式在F#中構建以下引號表達式?
- 29. 如何以編程方式下載adobe reader(如果不存在)
- 30. ASP.NET - 以編程方式控制下拉列表回發
答案爲止排序錯過了標記,但我不知道如何使這個問題更加清晰。我希望在代碼中(不是由用戶輸入引起的)模擬如果按下菜單的加速鍵會發生什麼情況,導致菜單下拉並獲得焦點,但不模擬任何特定項目上的點擊) – Ryan