我正在尝试为终端开发一个新的文本编辑器。按下CTRL键时,是否可以创建自定义命令?
我已经尝试使用getch()和getkey()命令,但它们只给我提供了ASCII码的字符和数字
class UI:
def __init__(self, texthandler):
self.end_column = 0
self.start_column = 0
self.end_row = 0
self.start_row = 0
self.texthandler = texthandler
self.window = None
self.stdscr = None
self.init()
def init(self):
if 'windows' in OS.lower():
colorama.init(convert=True)
else:
colorama.init()
self.stdscr = curses.initscr()
curses.noecho()
curses.cbreak()
self.stdscr.keypad(True)
def get_stdscr(self):
return self.stdscr
def mainloop(self):
while True:
self.stdscr.addstr(0, 0,
self.texthandler.get(self.start_row, self.end_row, self.start_column, self.end_column))
key = self.stdscr.getch()
if key == 27:
break
else:
self.texthandler.add(key)
self.end_row += 1
self.render()
def render(self):
curses.doupdate()
self.stdscr.refresh()
类texthandler仅用于获取和设置文本。它不会执行任何其他操作。
我已经尝试过curses.unctrl()
,它与我期望的非常相似,但是它不能单独触发shift和ctrl键。有没有一种方法允许窗口检测到这些键?