[英]How to print inline after input using curses
我想通過提示接收具有以下結構的輸入:
-----------------------------
| |
| Digit your name:[] |
| |
-----------------------------
其中“[]”是輸入 cursor。
我使用原始輸入制作(不工作)的代碼是:
print('-----------------------------------------------------------------------')
print('| {:67s} |'.format(''))
print('| {:67s} |'.format(input('Digit your name:')))
print('| {:67s} |'.format(''))
print('-----------------------------------------------------------------------')
我怎樣才能使它與curses
一起工作? 謝謝
如果您想在 curses 中執行此操作,您需要有一個 main 函數,將 stdscr 作為參數放入其中,如下所示:
import curses
def main(stdscr):
stdscr.getch()
curses.wrapper(main)
而 stdscr.getch() 只是等待用戶按下任意鍵。
然后,您可以使用stdscr.addstr(0, 0, "Digit your name:")
在文本上打印出一個字符串。 前兩個 arguments 是y
和x
坐標。 那么它看起來像這樣
import curses
def main(stdscr):
stdscr.addstr(0, 0, "Digit your name:")
stdscr.getch()
curses.wrapper(main)
然后,如果您想要一種input
,則需要curses.echo()
,它只會回顯您的輸入。 然后stdscr.getstr(0, 0)
。 但是這兩個 arguments 是您希望用戶寫入的位置。 但是如果你運行它:
import curses
def main(stdscr):
curses.echo()
stdscr.addstr(0, 0, "Digit your name:")
stdscr.getstr(0, len("Digit your name:"))
curses.wrapper(main)
然后你需要說stdscr.addstr(0, len("Digit your name:") + 1)
如果你想制作一個盒子,這里有一個鏈接。
我希望我能幫助你。 記住。 您不能在 pycharm 編輯器中執行此操作。 您需要在終端中執行此操作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.