ユーザーからテキスト入力を取得して変数に格納する比較的簡単な方法はありますか? たとえば、テキスト入力を介して名前を尋ね、それをラベルに表示します。
pyglet text_input.py の例をチェックアウトしましたが、テキストの表示のみを示しており、フォームから値を取得していません。サンプルコードは非常に役立ちます。ありがとう。
ユーザーからテキスト入力を取得して変数に格納する比較的簡単な方法はありますか? たとえば、テキスト入力を介して名前を尋ね、それをラベルに表示します。
pyglet text_input.py の例をチェックアウトしましたが、テキストの表示のみを示しており、フォームから値を取得していません。サンプルコードは非常に役立ちます。ありがとう。
私は pyglet text_input.py の例で遊んでいるだけで、テキストを印刷する方法を見つけました。私が使用したウィジェットに保存されているので:
print(self.widgets[0].document.text)
このテキストは、変数に簡単に格納できます。
my_text = self.widgets[0].document.text
print(my_text)
これが少し役立つことを願っています(ただし、答えは1年遅れています:)
返信ありがとうございます。その間、このスレッドのことも忘れていましたが、使用したコードは次のとおりです。
ここで '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