2

是否有一种相对简单的方法可以从用户那里获取文本输入并将其存储在变量中?例如,通过文本输入请求名称并将其显示在标签上。

我检查了 pyglet text_input.py 示例,但它只演示了文本的显示,它没有从表单中获取值。任何示例代码都会有很大帮助。谢谢。

4

2 回答 2

0

感谢您的回复,我同时发现,也忘记了这个线程,但这是我使用的代码。

按“t”从这里开始输入输入。然后标签会在每次按键时更新。Backspace 通过删除最后一个字符来完成它的工作,然后 Enter 存储该值。

class Typein(object):
    text =''
    firstt = True       # this serves to avoid the first 't' used to activate the typing, 
                        # not to get stored as first character of the text.
    @staticmethod
    def on_text(text):
        if Typein.firstt == True and Typein.text == 't':
            Typein.text = ''
            Typein.firstt = False
        Typein.text += text
        if Typein.firstt != True: 
            Labels.playername_label.text = Typein.text
        Control.CurrentPlayer.name = Typein.text
    @staticmethod
    def on_key_press(symbol,modifiers):
        if symbol == key.ENTER:
            Labels.playername_label.text = Typein.text
            Typein.text =''
            GAME_WINDOW.pop_handlers()
            Control.handleraltered = False
        elif symbol == key.BACKSPACE:
            Typein.text = Typein.text[:-1]
            Labels.playername_label.text = Typein.text
        elif symbol:
            return True
于 2014-10-09T08:48:25.573 回答
0

我自己只是在玩 pyglet text_input.py 示例,我发现了如何打印文本。因为它存储在我使用的小部件中:

print(self.widgets[0].document.text)

这个文本可以很容易地存储在一个变量中:

my_text = self.widgets[0].document.text
print(my_text)

希望这对您有所帮助(尽管答案晚了一年:)

于 2014-05-11T21:11:06.547 回答