亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ConfigParserProperty 在 kivy 類中返回 val

ConfigParserProperty 在 kivy 類中返回 val

九州編程 2023-10-06 16:44:34
我正在關注官方的 kivy 文檔,并且遇到了一個問題,這是我的代碼,在底部我將解釋問題所在。KV = '''BoxLayout:    TextInput:        id: number        text: str(app.number)        on_text: app.number = self.text    Label:        id: info        number: number.text        text: 'Number: {}'.format(self.number)''' class InfoApp(App):    def build_config(self, config):        config.setdefaults(            'info',            {                'number': ''            }        )    number = ConfigParserProperty(0, 'info', 'number', 'app',val_type=int)    def build(self):        print(self.number)        return Builder.load_string(KV)if __name__ == '__main__':    InfoApp().run()該程序可以工作,但在構建函數中我打印 self.number,它返回 0 而不是存儲在配置文件中的數字,我該如何解決這個問題,所以如果我在構建函數中添加更多計算小部件,它將正確地知道數字?任何幫助將不勝感激!謝謝!
查看完整描述

1 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

ConfigParserProperty 設置構建后發生的事情,因此遺憾的是,您不能依賴可用的配置中的值,build甚至on_start不能在那之后盡快更新它,但它之前不會發生。


因此,您有兩種選擇,要么將操作延遲固定的時間(使用 Clock.schedule_once),然后在被調用函數中執行您想要對值執行的任何操作,或者(更好)將函數綁定到您要執行的屬性感興趣,因此每次值更改時都會調用它,這可能正是您想要的,因為您需要根據該值刷新界面。


KV = '''

BoxLayout:

    TextInput:

        id: number

        text: str(app.number)

        on_text: app.number = self.text

    Label:

        id: info

        number: number.text

        text: 'Number: {}'.format(self.number)

''' 



class InfoApp(App):


    def build_config(self, config):

        config.setdefaults(

            'info',

            {

                'number': ''

            }

        )

    number = ConfigParserProperty(0, 'info', 'number', 'app',val_type=int)


    def build(self):

        self.bind(number=self.do_something)

        return Builder.load_string(KV)


    def do_something(self, *args):

        print(self.number)



if __name__ == '__main__':

    InfoApp().run()


查看完整回答
反對 回復 2023-10-06
  • 1 回答
  • 0 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號