如何使用python curses模块创建一个关键事件?

时间:2011-08-31 22:25:25

标签: python curses

我正在尝试在python中创建一个关键事件。我认为使用curses模块我可以做到,但我不知道如何。请帮我。

如何通过按键盘键来调用功能。就像,如果按下“空格”键做某事,如果按“c”键显示图像,如果按“s”键保存图像。我的问题只是制作那个关键事件。  我正在使用Linux o.s。

我尝试使用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中很新。

感谢您的回答

2 个答案:

答案 0 :(得分:2)

生成按键:

在Windows上,生成按键很容易。在Linux上有点困难:

获得一键按键:

对于这种情况,使用curses有点多。

答案 1 :(得分:0)

你描述的事件通常与某种GUI容器(窗口,画布,框架,你有什么)相关联,所以没有某种GUI,“事件”真的没有任何意义。如果您要说明您正在使用的GUI框架,我可以给出更详细的答案,但除此之外,这里有链接描述如何使用TKInterWxPython来处理事件