当前位置: 首页 > 面试题库 >

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

王炜
2023-03-14
问题内容

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

这是我的代码

import curses

screen = curses.initscr()

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

finally:
    curses.endwin()

有什么建议吗?


问题答案:

从诅咒文档:

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

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


 类似资料:
  • 我正在使用python 3.4的curses,我需要一个简单的方法来用箭头键计数,每次我按上,x给自己加1,按下,它从自己减去1。

  • 我需要为大型机服务器制作一个详细的(许多特性)终端应用程序。到目前为止,我已经找到了这些: JCurses最近更新,但自2002年以来未更新。也找不到例子 语言对我来说并不重要,但我希望它简单。我不想重新发明轮子,我想让文本框、菜单、单选按钮等组件易于使用。Charva似乎是最详细的一个,因为它是大多数swing组件的替代品,但是它已经坏了。我不确定我是否用正确的术语搜索,我找不到其他框架。他们是

  • 问题内容: 为什么Object类是Java中em的基类,而不是抽象类? 我已经有很长时间了,这个问题纯粹是出于好奇,仅此而已。我的代码或任何人的代码都没有中断,因为它不是抽象的,但是我想知道为什么他们将其具体化了? 为什么有人要这个Object类的“实例”(而不是引用的存在)?一种情况是糟糕的同步代码,该代码使用对象的实例进行锁定(至少我曾经以这种方式使用过一次……我的错)。 对象类的“实例”是否

  • 问题内容: 为什么Java类不能像抽象类那样具有抽象字段? 例如:我有两个扩展相同抽象基类的类。这两个类各自具有相同的方法,但其中包含String常数(恰好是错误消息)。如果字段可以是抽象的,那么我可以使这个常量抽象,并将该方法引入基类。相反,我必须创建一个抽象方法,在这种情况下称为该方法,该方法返回String,在两个派生类中重写此方法,然后可以拉出该方法(现在称为抽象方法)。 为什么我不能仅将

  • 问题内容: 我很难理解为什么一个类中的动作是抽象的而另一个类中的动作却不是抽象的。 源代码1:(编译时出错:https : //gyazo.com/cd3c21a8562589451814903febaf89fe) 源代码2 :(编译好的代码) 问题答案: 因为在第一个示例中您输入错误: 应该是