我想制作一个程序,输入一些字母,并实时给出所有单词的组合,但我只能显示一些,因为我不知道如何使用多行。我已经很长时间没有使用 kivy 了。很久。有人可以帮我吗?
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
import itertools
class Screen(BoxLayout):
def __init__(self, **kwargs ):
super(Screen, self).__init__(**kwargs)
self.orientation = "vertical"
cuvinte = " "
boxlayout2 = BoxLayout()
button = Button()
txt_instructions = Label(text = "Introduce your letters without any spaces between them")
self.add_widget(txt_instructions)
my_user_input = TextInput()
boxlayout2.add_widget(my_user_input)
self.add_widget(boxlayout2)
my_output = Label(halign = 'center')
self.add_widget(my_output)
def callback(instance, value):
cuvinte = " "
lista2 = []
lista3 = []
n = value
lista = list(n)
for i in range(len(lista)):
for word in itertools.permutations(lista):
lista2.append(''.join(word[0:len(word)-i]))
for i in lista2:
if i not in lista3:
lista3.append(i)
lista3.sort()
cuvinte = ' '.join(str(e) for e in lista3)
my_output.text = cuvinte
my_user_input.bind(text=callback)
class MyApp(App):
def build(self):
return Screen()
if __name__ == '__main__':
MyApp().run()
Run Code Online (Sandbox Code Playgroud)
在 TextInput 小部件中添加 multiline=True
my_user_input = TextInput(multiline=True)
Run Code Online (Sandbox Code Playgroud)