python – Windows的Curses替代

Windows中使用python的curses模块有什么替代方法吗?我查看了python文档,但是它提到了它在unix中的使用.我对这些不是很熟悉,所以有没有办法在windows中使用curses模块或者是否有一些专门用于windows的类似模块?
[我使用的是Python 3.3]

解决方法:

那么你恐怕不幸.
没有真正的跨平台版本或curses / ncurses端口,有一个“对话”端口可以工作,但它的功能有限.

你最好的选择是运行CygWin或MinGW32,两者都是“松散术语”,Linux系统终端模拟器,它有很多你需要的二进制文件.他们可以在终端内部运行本机Linux / Unix二进制文件,并随时访问您的“主机”系统文件,因此就像使用一个带有Linux世界所有好东西的kick-ass终端来修补Windows.
你仍然需要一些Linux的基本知识以及命令等的工作方式,但你会弄明白的.

这是一个Pyglet GUI示例:

import pyglet
from pyglet.gl import *

class main (pyglet.window.Window):
    def __init__ (self):
        super(main, self).__init__(800, 600, fullscreen = False)
        self.button_texture = pyglet.image.load('button.png')
        self.button = pyglet.sprite.Sprite(self.button_texture)

        ## --- If you'd like to play sounds:
        #self.sound = pyglet.media.load('music.mp3')
        #self.sound.play()

        self.alive = 1

    def on_draw(self):
        self.render()

    def on_close(self):
        self.alive = 0

    def on_mouse_press(self, x, y, button, modifiers):
        if x > self.button.x and x < (self.button.x + self.button_texture.width):
            if y > self.button.y and y < (self.button.y + self.button_texture.height):
                self.alive = 0

    def on_key_press(self, symbol, modifiers):
        if symbol == 65307: # [ESC]
            self.alive = 0

    def render(self):
        self.clear()
        self.button.draw()
        self.flip()

    def run(self):
        while self.alive == 1:
            self.render()

            # -----------> This is key <----------
            # This is what replaces pyglet.app.run()
            # but is required for the GUI to not freeze
            #
            event = self.dispatch_events()


x = main()
x.run()

这是该代码的输出:

上一篇:Curses 中的 noecho() 函数


下一篇:python – 使用(n)curses打印到终端的右侧或底部