为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

POPMUISE 2022-08-02 17:35:19
我想在弹出窗口中更改类的一些按钮标签,并在重新打开弹出窗口后保留新标签。如果您运行我的应用程序,您可以看到按下“按我”按钮后,出现一个弹出窗口,其中包含一个带有标签“默认”的按钮,按下它后,它将标签更改为“新建”。我希望能够关闭弹出窗口,按“按我”按钮,然后在弹出窗口中看到带有标签“新”的按钮。我的.py文件from kivy.uix.floatlayout import FloatLayoutfrom kivy.core.window import Windowfrom kivy.uix.popup import Popupfrom kivy.app import Appfrom kivy.uix.widget import Widgetimport timeWindow.clearcolor = (1, 1, 1, 1)Window.size = (800, 480)class MyGrid(Widget):    def btn(self):        show_popup(T, "Window")class T(FloatLayout):    passdef 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 popupWindowclass 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"
查看完整描述

1 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

您可以执行此操作的一种方法是保留对弹出窗口的引用。

侧面:py


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

Window.size = (800, 480)



class MyGrid(Widget):


    def __init__(self, **kwargs):

        super(MyGrid, self).__init__(**kwargs)

        self.popupWindow = Popup(content=T(), size_hint=(None, None),

                                 size=(800, 384), auto_dismiss=True)


    def btn(self):

        self.show_popup("Window")


    def show_popup(self, name):

        self.popupWindow.title = name

        self.popupWindow.open()



class T(FloatLayout):

    pass



class TimeApp(App):

    def build(self):

        return MyGrid()



if __name__ == "__main__":

    TimeApp().run()


查看完整回答
反对 回复 2022-08-02
  • 1 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号