gpt4 book ai didi

python - Tkinter 右键单击​​ OSX 上的弹出窗口无响应

转载 作者:行者123 更新时间:2023-11-28 21:51:11 25 4
gpt4 key购买 nike

我一直在寻找一种在 OSX 上显示右键单击弹出菜单的方法。到目前为止,我所有的尝试都没有成功。相同的代码可以在 Linux VM (Ubuntu) 上正常运行。

为了论证我复制了这两页写的代码,并尝试在我的机器上运行它们。

tkinter app adding a right click context menu?

http://effbot.org/zone/tkinter-popup-menu.htm

两者都没有按照我期望的方式在 OSX 上运行,但当我在 Ubuntu VM 上运行它们时它们会运行。

我使用的机器是运行 OSX 10.6.8 的 Mac Mini4,1。有没有其他人遇到过这种情况,是否有可行的解决方法?

最佳答案

由于奇怪的历史原因,右侧按钮在 Mac 上是按钮 2,但在 unix 和 windows 上是 3

这是一个适用于我的 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()

关于python - Tkinter 右键单击​​ OSX 上的弹出窗口无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30668425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com