對於奇數歷史的原因,右按鈕是按鈕 Mac上,但在UNIX和Windows 。
這裏是我的OSX箱工作的例子:
try:
# python 2.x
import Tkinter as tk
except ImportError:
# python 3.x
import tkinter as tk
class Example(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
self.popupMenu = tk.Menu(self, tearoff=0)
self.popupMenu.add_command(label="One", command=self.menu_one)
self.popupMenu.add_command(label="Two", command=self.menu_two)
self.popupMenu.add_command(label="Three", command=self.menu_three)
self.bind("<Button-2>", self.popup)
def menu_one(self):
print "one..."
def menu_two(self):
print "two..."
def menu_three(self):
print "three..."
def popup(self, event):
self.popupMenu.post(event.x_root, event.y_root)
if __name__ == "__main__":
root =tk.Tk()
frame = Example(root, width=200, height=200)
frame.pack(fill="both", expand=True)
root.mainloop()
在Mac OSX(可能還有其他平臺),你需要添加'self.config(菜單= self.popupMenu)'對於這工作。 –
@ThomasAntony:不,除非拋出錯誤,否則不會做任何事情。在這種情況下,'self'是一個框架,框架沒有'menu'選項。 。此外,問題是關於上下文敏感(「右鍵單擊」)菜單,而不是菜單欄。 –
另一件事是窗口必須專注於'後''工作。 –