0

我正在尝试在 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很陌生。

谢谢你的答案

4

2 回答 2

2

生成按键:

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

获得按键:

在这种情况下,使用诅咒有点多。

于 2011-08-31T22:41:39.880 回答
0

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

于 2011-08-31T23:09:14.143 回答