python - 如何显示所有标签内容?
问题描述
我是 kivy 的新手,我创建了一个游戏生成器,它根据用户可能输入的敌人数量生成随机遭遇的数量。但在最后部分,即使我输入了多个敌人,也只显示一个敌人。
如何制作标签,显示其所有内容?
import random
import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
class grid(GridLayout):
def __init__(self, **kwargs):
super(grid, self).__init__(**kwargs)
self.cols = 1
self.info_grid = GridLayout()
self.info_grid.cols = 2
self.info_grid.add_widget(Label(text="Numero de inimigos:"))
self.Inimigos = TextInput()
self.info_grid.add_widget(self.Inimigos)
self.add_widget(self.info_grid)
self.Gerador = Button(text="Gerar", font_size=40)
self.Gerador.bind(on_press=self.Gerar)
self.add_widget(self.Gerador)
self.show_inimigos = (Label(text="Clique para gerar"))
self.add_widget(self.show_inimigos)
def Gerar(self, instance):
int_inimigos = int(self.Inimigos.text)
racas = ["HUMANO", "ELFO", "ANÃO", "HOBBIT", "LAGARTÃO", "LEONINO", "NEZUMI"]
classe = ["APPRENTICE", "FIGHTER", "KNIGHT", "BERSERKER", "FENCER", "NINJA", "HOPLITE", "BEAST TAMER",
"DRAGON TAMER", "ARCHER", "ROUGE", "DOLL MASTER", "WARLOCK", "MAGE", "ACOLYTE", "MONK", "CLERIC",
"BARD", "WARLORD", "SHAMAN", "DRUID", "SPEAKER", "MERCHANT", "ALCHEMIST", "BLACKSMITH", "CHEF"]
elemento = ["FIRE", "AIR", "WATER", "EARTH", "LIGHT", "DARK"]
for i in range(int_inimigos):
escolha_raca = random.choice(racas)
escolha_classe = random.choice(classe)
escolha_elemento = random.choice(elemento)
encontro = (escolha_raca + ' : ' + escolha_classe + ' - ' + escolha_elemento)
self.show_inimigos.text = (encontro + "\n")
class MyApp(App):
def build(self):
return grid()
if __name__ == "__main__":
MyApp().run()
Gerar
我认为它的功能有些问题
解决方案
for i in range(int_inimigos):
escolha_raca = random.choice(racas)
escolha_classe = random.choice(classe)
escolha_elemento = random.choice(elemento)
encontro = (escolha_raca + ' : ' + escolha_classe + ' - ' + escolha_elemento)
self.show_inimigos.text = (encontro + "\n")
看起来您总是设置为迭代中self.show_inimigos.text
最新的值。encontro
做类似的事情self.show_inimigos.text += encontro + '\n'
。
推荐阅读
- apache - Apache 反向代理 - 没有 / 的 URL 被拒绝
- ios - WebDriverAgent] xcodebuild 以代码“75”和信号“null”退出 - 如何解决问题
- reactjs - 在 axios.fetch...then() 中使用 setState 和 typescript
- julia - 可以使用 Julia 类型和多重调度来对用户透明地处理多个坐标系吗?
- permissions - 如果客户想在任务模块中使用补充数据,必须做什么?
- swift - 单击 UITextfield 时键盘未打开
- android - 缓存的视频不能立即播放?
- mongodb - 副本集上的 MongoDB 数据损坏
- visual-studio-code - VS Code:将文件作为最后一个选项卡而不是当前选项卡打开
- java - 它的正确答案是 22。但我得到 24。我错在哪里?我最后评估赋值运算符 += 因为它的优先级最低