Pyglet - 文本输入 - 如何获取变量的值?

Posted

技术标签:

【中文标题】Pyglet - 文本输入 - 如何获取变量的值?【英文标题】:Pyglet - text input - how to get it's value to a variable? 【发布时间】:2013-07-11 19:24:10 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

【参考方案2】:

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

按“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

【讨论】:

以上是关于Pyglet - 文本输入 - 如何获取变量的值?的主要内容,如果未能解决你的问题,请参考以下文章

c++获取文本框的值

C#中怎样从一个form的文本框获取另一个form中Comobox控件的值

如何使用 Kivy 获取文本输入的值

如何让进度条获取文本类型输入的值?

如何使用pyglet保存当前视图矩阵

微信小程序—如何获取用户输入文本框的值