小编典典

为什么我的诅咒盒不抽奖?

python

我玩弄诅咒,无法在屏幕上画一个盒子。我创建了一个可行的边框,但我想在边框中画一个框

这是我的代码

import curses

screen = curses.initscr()

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

finally:
    curses.endwin()

有什么建议吗?


阅读 185

收藏
2021-01-20

共1个答案

小编典典

诅咒文档

当您调用显示或删除文本的方法时,效果不会立即显示在显示屏上。…

因此,诅咒要求您使用窗口对象的 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()
2021-01-20