在Python中保留退格键时删除多个字符

时间:2018-02-28 21:51:06

标签: python pygame

我正在开发一个项目,我在Python中找到了一个文本框的代码: How to create a text input box with pygame?

现在,我想更改代码,以便 用户保留退格时,文本框将删除字符。

我尝试将代码更改为:

if event.type == pg.KEYDOWN:
    if self.active:
        if event.key == pg.K_RETURN:
            self.text = ''
        if event.key == pg.K_BACKSPACE:
            while pg.KEYDOWN is pg.K_BACKSPACE:
                print "shock"
                self.text = self.text[:-1]
        else:
            self.text += event.unicode
        # Re-render the text.
        self.txt_surface = FONT.render(self.text, True, self.color)

但它不起作用,我在网上找不到任何解决方案。

1 个答案:

答案 0 :(得分:2)

您可以启用keyboard repeat,因此按住某个键会产生多个按键事件。

因此,在pg.key.set_repeat(500, 200)之后调用pg.init(),在初始延迟半秒后每200毫秒生成一次退格键事件。