簡體   English   中英

如何使用curses輸入后內聯打印

[英]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 是yx坐標。 那么它看起來像這樣

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM