保存对象的值在Popup中已更改,因此在关闭它后,当我再次打开弹出窗口时,它将以新值打开

我想在弹出窗口中更改类的一些按钮标签,并在重新打开弹出窗口后保留新标签。如果您运行我的应用程序,您可以看到按下“按我”按钮后,出现一个弹出窗口,其中包含一个带有标签“默认”的按钮,按下它后,它将标签更改为“新建”。我希望能够关闭弹出窗口,按“按我”按钮,然后在弹出窗口中看到带有标签“新”的按钮。


我的.py文件


from kivy.uix.floatlayout import FloatLayout

from kivy.core.window import Window

from kivy.uix.popup import Popup

from kivy.app import App

from kivy.uix.widget import Widget


import time


Window.clearcolor = (1, 1, 1, 1)

Window.size = (800, 480)


class MyGrid(Widget):

    def btn(self):

        show_popup(T, "Window")



class T(FloatLayout):

    pass


def show_popup(tab, name): 

    show = tab()

    popupWindow = Popup(title = name, content = show, size_hint = (None,None), size = (800,384), auto_dismiss = True)

    popupWindow.open()

    return popupWindow


class TimeApp(App):

    def build(self):

        return MyGrid()




if __name__ == "__main__":

    TimeApp().run()

我的 .kv 文件


<MyGrid>    

    Button:

        text: "Press me"

        on_press: root.btn()



<T>:

    Button:

        pos_hint: {"center_x": 0.5, "center_y": 0.5}

        text: "Default"

        on_press: self.text = "New"


POPMUISE
浏览 76回答 1
1回答

慕桂英4014372

您可以执行此操作的一种方法是保留对弹出窗口的引用。侧面:pyWindow.clearcolor = (1, 1, 1, 1)Window.size = (800, 480)class MyGrid(Widget):&nbsp; &nbsp; def __init__(self, **kwargs):&nbsp; &nbsp; &nbsp; &nbsp; super(MyGrid, self).__init__(**kwargs)&nbsp; &nbsp; &nbsp; &nbsp; self.popupWindow = Popup(content=T(), size_hint=(None, None),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size=(800, 384), auto_dismiss=True)&nbsp; &nbsp; def btn(self):&nbsp; &nbsp; &nbsp; &nbsp; self.show_popup("Window")&nbsp; &nbsp; def show_popup(self, name):&nbsp; &nbsp; &nbsp; &nbsp; self.popupWindow.title = name&nbsp; &nbsp; &nbsp; &nbsp; self.popupWindow.open()class T(FloatLayout):&nbsp; &nbsp; passclass TimeApp(App):&nbsp; &nbsp; def build(self):&nbsp; &nbsp; &nbsp; &nbsp; return MyGrid()if __name__ == "__main__":&nbsp; &nbsp; TimeApp().run()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python