0

ユーザーが指定した時間にポップアップ ウィンドウを表示しようとしていますか? ポップアップはプリコードされた時間にしか表示されないので、これを試しました。今、私は次のようなエラーを受け取りました:int() argument must be a string, a bytes-like object or a number, not 'NoneType'

class MainApp(MDApp):
    hour = NumericProperty(None, allowenone=True)
    minute = NumericProperty(None, allowenone=True)

    def build(self):
        # calling the service
        if platform == "android":
            from android import AndroidService
            service = AndroidService("my pong service", "running")
            service.start("service started")
            self.service = service

        schedule.every().day.at(f'{int(self.hour)}:{int(self.minute)}').do(self.mantraPop_message)
        #schedule.every().day.at(str(0) + str(self.hour) + ":" + str(self.minute)).do(self.show_notification)
        Clock.schedule_interval(lambda dt: schedule.run_pending(), 1)
        return MainScreen()

    def show_timepicker(self):
        picker = MDTimePicker()
        picker.bind(time=self.got_time)
        picker.open()

    def got_time(self, picker_widget, time):
        self.hour = time.hour
        self.minute = time.minute
        print(f'{int(self.hour)}:{int(self.minute)}')
4

1 に答える 1

1

schedule.every().day.at(f'{int(self.hour)}:{int(self.minute)}').do(self.mantraPop_message)def got_time():時刻が設定されるたびにスケジュールを呼び出すように配置する必要があります。self.hour空にすることもできます。以前は、アプリの実行時にスケジュールが開始され、更新できないため、ユーザーが時刻を設定したときにのみスケジュールが開始されるようになっていました。

于 2020-08-25T04:14:20.920 に答える