[英]How to adapt output to changing terminal's width
我正在嘗試編寫一個在Python的控制台中運行時會生成一個簡單小部件的函數。 此小部件應支持終端大小。 顯示小部件后,我將等待用戶的鍵盤輸入並根據類型來調整內容。 我現在遇到的困難是, 當用戶調整終端大小時,如何使該小部件調整其顯示。 這是我現在擁有的代碼的簡化版本:
def test():
import blessed
import signal
def draw():
n = term.width - 3
print("+" + "=" * n + "+" + term.clear_eol)
print("|" + " " * (n//2 - 2) +
"TEST" + " " * (n - n//2 - 2) + "|" + term.clear_eol)
print("+" + "=" * n + "+" + term.clear_eol)
def redraw(_, __):
print(term.move_up * 3, end="")
draw()
term = blessed.Terminal()
draw()
signal.signal(signal.SIGWINCH, redraw)
with term.cbreak():
term.inkey()
如果用戶擴展終端,或者如果用戶收縮終端但速度非常慢(一次1個字符),則此方法很好。 但是,快速減小端子寬度將導致長線纏繞,從而損壞輸出。 有沒有辦法解決這個問題?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.