0
我一直在玩kivy库,并一直试图为游戏hang子手[1]创建一个GUI。我试图创建一个用户输入单个字母的TextField,当它们按下return/enter时,而不是textinput.text给出的常量流时,它会更改按钮文本仅限。(Kivy/Python)当用户点击输入时,从textinput小部件中存储文本
我已经看过文档和其他计算器Q & A的,它似乎解决方案或者on_text_validate事件或更改我的Clock.schedule.interval设置,但我无法弄清楚如何实现它在我的代码。
我的Python文件:
from kivy.app import App
from kivy.clock import Clock
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.textinput import TextInput
class HangmanBoard(BoxLayout):
word = 'hangman'
empty = ["_"]*len(word)
def update(self, *args):
empty_word = self.ids['labelA']
letter_input = self.ids['labelB']
guess = letter_input.text
empty_word.text = ' '.join(self.empty)
if guess in self.word:
for i in range(len(self.word)):
if guess == self.word[i]:
self.empty[i] = guess
print(guess)
class HangmanApp(App):
def build(self):
game = HangmanBoard()
Clock.schedule_interval(game.update, 1)
return game
if __name__ == '__main__':
HangmanApp().run() here
我千伏文件:
<HangmanBoard>:
orientation: 'vertical'
Button:
id: labelA
font_size: 60
size_hint: 1, 0.5
TextInput:
id: labelB
font_size: 60
pos_hint: {'center_x':0.5}
size_hint: 1, 0.5
focus: True
multiline: False
非常感谢! – SolaOmi
没问题!考虑接受答案。我还有一个“当用户停止输入”机制的项目,所以如果你需要的话,我可以拉起相关的部分。 –