我正在尝试制作一个程序,在用户输入名称之后,该程序会读取字典,并根据字典中的加权值分配随机选择。到目前为止,从字典中选择随机值的逻辑正在工作,但我已将其打印到控制台。我希望它出现在弹出窗口中(我有,但是无法获取输出变量显示在这里)
four.kv
col1 col2 col3
2 2 2
2 2 3
3 3 3
3 4 8
main4.py
WindowManager:
MainWindow:
<MainWindow>:
name:'main'
player_python:player_kv
GridLayout:
cols:1
GridLayout:
cols:2
Label:
text:'Player:'
TextInput:
id: player_kv
multiline: False
Button:
text: 'Random'
on_press: root.btn()
<P>:
output:output
FloatLayout:
Label:
id: output
https://gist.github.com/PatrickToole/00cc72cdd7ff5146976e5d92baad8e02
预先感谢
-P
答案 0 :(得分:0)
我尚未测试此代码,但是尝试将self.output
传递给您的show_popup()
方法。这意味着将您的btn()
方法更改为:
def btn(self):
player = self.player_python.text
weighted_list = []
for c in character[player]:
for w in range(character[player][c]):
weighted_list.append(c)
self.output= random.choice(weighted_list)
print(self.output) ###### instead of this printing to console I want it to display in popup window
self.player_python.text = ''
show_popup(self.output)
在show_popup()
方法中:
def show_popup(output):
show = P()
show.output.text = output
popupWindow = Popup(title='random character', content=show, size_hint=(None,None),size=(400,400) )
popupWindow.open()
正如我提到的,我没有测试这段代码,但是类似的东西应该可以工作。