Python代码在Mac OS X(10.8)上无法正常运行但在Windows 7上运行,为什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python代码在Mac OS X(10.8)上无法正常运行但在Windows 7上运行,为什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1710字,纯文字阅读大概需要3分钟。
内容图文
我正在使用“使用Python编程简介(Pearson 2013)”一书学习Python.我在Mac OS X(10.8)上使用PyCharm 2.7来编写Pyhon 3代码.
以下代码(使用tkinter创建GUI并添加弹出菜单)在我的Mac OS X上无法正常运行.问题是当按下鼠标右键时弹出菜单不显示.我在Windows 7 VM和Windows 7上测试了代码,它运行得很好.
所以我的问题是:为什么代码适用于Windows 7但不适用于Mac OS X?
这是代码:
from tkinter import *
class PopupMenuDemo:
def __init__(self):
window = Tk()
window.title("Popup Menu Demo")
# Create a popup menu
self.menu = Menu(window, tearoff = 0)
self.menu.add_command(label = "Draw a line", command = self.displayLine)
self.menu.add_command(label = "Draw an oval", command = self.displayOval)
self.menu.add_command(label = "Draw a rectangle", command = self.displayRectangle)
self.menu.add_command(label = "Clear", command = self.clearCanvas)
# Place canvas in window
self.canvas = Canvas(window, width = 200, height = 100, bg = "white")
self.canvas.pack()
# Bind popup to canvas
self.canvas.bind("<Button-3>", self.popup)
window.mainloop()
# Display a rectangle
def displayRectangle(self):
self.canvas.create_rectangle(10, 10, 190, 90, tags = "rectangle")
def displayOval(self):
self.canvas.create_oval(10, 10, 190, 90, tags = "oval")
def displayLine(self):
self.canvas.create_line(10, 10, 190, 90, tags = "line")
self.canvas.create_line(10, 90, 190, 10, tags = "line")
def clearCanvas(self):
self.canvas.delete("rectangle", "oval", "line")
def popup(self, event):
self.menu.post(event.x_root, event.y_root)
PopupMenuDemo()
解决方法:
解
为了使代码在Mac OS X中正常工作,这里必须完成的工作.
更改:
self.canvas.bind("<Button-3>", self.popup)
至:
self.canvas.bind("<Button-2>", self.popup)
Button-3是中间单击按钮,而Button-2是辅助单击按钮.
要使其在Windows中运行,请使用Button-3.
内容总结
以上是互联网集市为您收集整理的Python代码在Mac OS X(10.8)上无法正常运行但在Windows 7上运行,为什么?全部内容,希望文章能够帮你解决Python代码在Mac OS X(10.8)上无法正常运行但在Windows 7上运行,为什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。