首先,我分别在 Windows 和 Linux 上使用 python 3.3 和 3.2。
我开始构建一个 rpn 计算器。看起来跨平台的关键监听器是 python 的一种圣杯。到目前为止,这似乎可以解决问题,但我还产生了其他问题:
- 我无法摆脱条目的全局变量并使用我的堆栈。
- 看来我必须从内部构建程序
callback()
这是一个粗略的骨架,显示了我的方向。我是否错过了一种将信息传入和传出的方法callback()
目标是在我发现自己被困在里面之前建立一个 RPN 类callback()
。
import tkinter as tk
entry = ""
stack = list()
operators = {"+",
"-",
"*",
"/",
"^",
"sin",
"cos",
"tan"}
def operate(_op):
if _op == "+":
print("plus")
def callback(event):
global entry, stack
entry = entry + event.char
if event.keysym == 'Escape': # exit program
root.destroy()
elif event.keysym=='Return': # push string onto stack TODO
print(entry)
entry = ""
elif entry in operators:
operate(entry)
root = tk.Tk()
root.withdraw()
root.bind('<Key>', callback)
root.mainloop()