如何使用python curses模块创建密钥事件?

如何使用python curses模块创建密钥事件?,python,curses,Python,Curses,我试图用python制作一个关键事件。我想用诅咒模块我可以做到,但我不知道怎么做。请帮帮我 如何通过按键盘键调用函数。例如,如果按下“空格”键,则执行某些操作;如果按下“c”键,则显示图像;如果按下“s”键,则保存图像。我的问题只是做那个关键事件。 我正在使用Linux操作系统 我尝试使用urwid模块 当我使用此代码时: import PIL import Image im=Image.open("im.tif") imshow(im,cmap=cm.gray ,origin=1) impo

我试图用python制作一个关键事件。我想用诅咒模块我可以做到,但我不知道怎么做。请帮帮我

如何通过按键盘键调用函数。例如,如果按下“空格”键,则执行某些操作;如果按下“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非常陌生

感谢您的回答

生成按键:

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

  • 粗略的方式:
    os.system('xvkbd-text“\\\\CP”)
  • 备选方案:
  • 这个模块很有趣,它使用了一个内核模块:
  • 在诅咒中找不到有关生成按键事件的说明
获得按键:

在这种情况下使用诅咒有点过分

  • 比如:会更简单
  • 比诅咒更容易使用
  • 最后,诅咒的方式是:

您描述的事件通常与某种GUI容器(窗口、画布、框架、您拥有的东西)相关联,因此如果没有某种GUI,“事件”实际上没有任何意义。如果你说你使用的是什么GUI框架,我可以给出一个更详细的答案,但除此之外,这里有一些链接描述如何使用和处理事件,我想他指的是在tty上使用原始模式“读取按键”。我可能错了,但我想OP是问用脚本触发按键事件,与处理用户的按键事件相反,不要同时使用urwid和Tkinter,这是个坏主意。它们的事件循环可能会发生冲突。