2015-05-31 21 views
-3

嗨我正在寫一個Python詛咒的程序,我需要從長按鍵只得到一個字符。 (換句話說,我需要的是,如果我一直按下一個鍵,我的程序只需要獲取帶有函數getchar()的char一次)。 我需要這個,因爲我想防止多次刷新窗口的詛咒。 我不給代碼,因爲它是意大利語,它很長。 謝謝。從長按鍵python詛咒獲取只是一個字符[接受]

回答

0

人們通常解決了

  1. 這一問題設定一個變量,它記錄的事實,一個字符被讀取
  2. 讀取字符
  3. 如果沒有字符可用(超時內,例如),停止讀取
  4. 如果還沒有讀取字符,請記錄下其中一個讀取的事實(以及記住哪個字符)
  5. 回到步驟2再次讀取

簡單地從終端讀取不會導致詛咒做額外的工作(它會在每次讀取時進行刷新)。如果你的程序修改了屏幕,它只會有工作要做。因此(假設您已關閉echo),則無需擔心撥打refresh的電話數量。

關於評論 「它有明確並刷新盒子」:有選擇(每個文件):

  • window.erase()清除一個窗口,但
  • window.clear()像擦除()但也會導致整個窗口在下次調用refresh()時被重新繪製爲

避免使用window.clear()除非你打算重新繪製整個窗口,因爲它是慢得多,並且在視覺上分心。

順便說一下,curses函數被稱爲getch,而不是getchar。後者可能無法正確使用curses。

+0

我有一個菜單,它從sqlite數據庫中獲取記錄,每當我按下上下鍵時,它都必須清除並刷新該框:我只是想防止框因爲過多的刷新而閃爍同時。明天我會嘗試你所建議的謝謝:) –

+0

清除盒子是一個設計問題。在curses中,您可以*清除*或*擦除*。後者不太注意力分散。 –

+0

謝謝,這真的是我需要的!我是否必須關閉帖子或類似的東西? –