使用kivy在弹出窗口中显示变量

时间:2020-03-05 20:48:29

标签: python kivy

我正在尝试制作一个程序,在用户输入名称之后,该程序会读取字典,并根据字典中的加权值分配随机选择。到目前为止,从字典中选择随机值的逻辑正在工作,但我已将其打印到控制台。我希望它出现在弹出窗口中(我有,但是无法获取输出变量显示在这里)

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

1 个答案:

答案 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()

正如我提到的,我没有测试这段代码,但是类似的东西应该可以工作。