为了账号安全,请及时绑定邮箱和手机立即绑定

使用 curses 库无法阻止箭头键回显到 Python 中的控制台

使用 curses 库无法阻止箭头键回显到 Python 中的控制台

www说 2022-10-05 17:02:34
下面是我的代码。我正在尝试制作一个简单的文本编辑器,并尝试确保箭头键不会打印到控制台,但它仍然可以。有什么帮助吗?import cursestext = []def main(screen):    curses.curs_set(1)    curses.noecho()    while True:        newChar = screen.getkey()        if newChar != curses.KEY_LEFT or curses.KEY_RIGHT or curses.KEY_UP or curses.KEY_DOWN:            text.append(newChar)        screen.addstr(0, 0, "".join(text))        screen.refresh()curses.wrapper(main)```
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

我发现了问题所在。比较if语句中的值时出现问题。解决了我自己的问题。伊皮


import curses


text = []



def main(screen):

        curses.curs_set(1)


        while True:

            newChar = screen.getch()


            if newChar not in [curses.KEY_LEFT, curses.KEY_RIGHT, curses.KEY_UP, curses.KEY_DOWN]:

                screen.addstr(0, 0, curses.keyname(newChar))

                screen.refresh()



curses.wrapper(main)


查看完整回答
反对 回复 2022-10-05
?
呼如林

TA贡献1798条经验 获得超3个赞

getkey返回一个字符串;将其与整数进行比较,例如curses.KEY_UP不会达到您的预期。


这有效:


import curses


text = []



def main(screen):

    curses.curs_set(1)

    curses.noecho()


    while True:

        newChar = screen.getch()

        # newChar = screen.getkey()


        if newChar != curses.KEY_LEFT and curses.KEY_RIGHT and curses.KEY_UP and curses.KEY_DOWN:

            screen.addstr(0, 0, curses.keyname(newChar))


        screen.refresh()



curses.wrapper(main)


查看完整回答
反对 回复 2022-10-05
  • 2 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号