4

呪いをいじっていて、画面にボックスを描画できません。機能する境界線を作成しましたが、境界線にボックスを描きたいです

ここに私のコードがあります

import curses 

screen = curses.initscr()

try:
    screen.border(0)
    box1 = curses.newwin(20, 20, 5, 5)
    box1.box()
    screen.getch()

finally:
    curses.endwin()

何かアドバイス?

4

2 に答える 2

9

curses ドキュメントから:

テキストを表示または消去するメソッドを呼び出しても、その効果はすぐには表示されません。...

したがって、curses では、ウィンドウ オブジェクトの refresh()メソッドを使用して、ウィンドウを再描画するように明示的に指示する必要があります。...

正しい順序でscreen.refresh()必要です。box1.refresh()

実施例

#!/usr/bin/env python

import curses 

screen = curses.initscr()

try:
    screen.border(0)

    box1 = curses.newwin(20, 20, 5, 5)
    box1.box()    

    screen.refresh()
    box1.refresh()

    screen.getch()

finally:
    curses.endwin()

また

#!/usr/bin/env python

import curses 

screen = curses.initscr()

try:
    screen.border(0)
    screen.refresh()

    box1 = curses.newwin(20, 20, 5, 5)
    box1.box()    
    box1.refresh()

    screen.getch()

finally:
    curses.endwin()

immedok(True)ウィンドウを自動的に更新するために使用できます

#!/usr/bin/env python

import curses 

screen = curses.initscr()
screen.immedok(True)

try:
    screen.border(0)

    box1 = curses.newwin(20, 20, 5, 5)
    box1.immedok(True)

    box1.box()    
    box1.addstr("Hello World of Curses!")

    screen.getch()

finally:
    curses.endwin()
于 2013-09-17T02:24:48.000 に答える