簡體   English   中英

python + 詛咒中 window 的最后一個字符

[英]Last character of a window in python + curses

以下程序引發錯誤:

import curses

def test(scr):
  top = curses.newwin(1, 10, 0, 0)
  top.addstr(0, 9, "X")

curses.wrapper(test)

看起來每當我嘗試使用 addstr() 在 window 的最后一行的最后一列中寫入一個字符時(即使它小於屏幕),它都會引發錯誤。 我不想滾動,我不關心光標的position。 我想要的只是能夠在 window 的每個 position 中寫入字符。 有可能嗎? 我怎樣才能做到這一點?

由於歷史原因,使用詛咒似乎無法簡單地編寫 window 的最后一個字符。

我能找到的唯一解決方法是將字符寫在其最終目的地左側的一個位置,然后用插入推動它。 以下代碼會將“X”推送到 position 9:

top = curses.newwin(1, 10, 0, 0)
top.addstr(0, 8, "X")
top.insstr(0, 8, " ")

事實證明, curses實際上確實最終寫入了最后一個 position:它只是隨后引發了一個錯誤。

因此,如果您可以忍受以下黑客/不優雅:

#! /usr/bin/env python
import curses

def test(scr):
    top = curses.newwin(1, 10, 0, 0)
    try:
        top.addstr(0, 9, "X")
    except curses.error:
        pass

curses.wrapper(test)

即,捕獲並忽略錯誤,那么代碼在設計和實現上都會簡單得多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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