【发布时间】:2011-11-08 00:24:29
【问题描述】:
我正在尝试在 python 中创建一个关键事件。我认为使用 curses 模块我可以做到这一点,但我不知道该怎么做。请帮我。
如何通过按下键盘键调用函数。就像,如果按下“空格”键做某事,如果按下“c”键显示图像,如果按下“s”键保存图像。我的问题只是做那个关键事件。 我正在使用 Linux 操作系统。
我尝试使用 urwid 模块 当我使用此代码时:
import PIL
import Image
im=Image.open("im.tif")
imshow(im,cmap=cm.gray ,origin=1)
import urwid
def save(input):
if input in ('s'):
savefig("im2.png")
出现了这个错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 1413, in __call__
return self.func(*args)
File "/usr/lib/pymodules/python2.6/matplotlib/backends/backend_tkagg.py", line 312, in key_press
FigureCanvasBase.key_press_event(self, key, guiEvent=event)
File "/usr/lib/pymodules/python2.6/matplotlib/backend_bases.py", line 1143, in key_press_event
self.callbacks.process(s, event)
File "/usr/lib/pymodules/python2.6/matplotlib/cbook.py", line 163, in process
func(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/matplotlib/backend_bases.py", line 1703, in key_press
self.canvas.toolbar.save_figure(self.canvas.toolbar)
TypeError: save_figure() takes exactly 1 argument (2 given)
我做错了什么?我怎样才能让它工作?
ps:很抱歉我的无知,但我是python的新手。
谢谢你的回答
【问题讨论】:
-
不要同时使用 urwid 和 Tkinter,这是个坏主意。他们的事件循环可能会发生冲突。