私はPython/Kivyで作成した天気アプリを持っています。アプリ起動時にイメージを正常にダウンロードしてロードしますが、天気図は毎日変更され、リフレッシュされません。 Kivyのドキュメントで説明されているnocache: True
、image.reload()
&私はself.the_24h_chart.source.reload()
と両方のエラーを試しました。PythonでKivyイメージをリフレッシュ
イメージファイルを再ロードするにはどうすればよいですか?擬似コード:あなたのグラフ1は、画像という名前の属性を持っていない、
#! /usr/bin/env python
# -*- decoding: utf-8 -*-
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import ObjectProperty, StringProperty, ListProperty
from kivy.clock import Clock
from kivy.loader import Loader
import time
from datetime import datetime, timedelta
import socket
import urllib
#--------------- kivy code ------------------
Builder.load_string('''
<Chart1>:
name: 'chart1'
the_24h_chart: _chart_img
Image:
source: 'images/chart.jpg'
nocache: True
id: _chart_img
size_hint_y: None
height: dp(420)
''')
#-------------------------------------------
class Chart1(Screen):
def update_chart1(self, sec):
try:
urllib.urlretrieve('http://wxcharts.eu/charts/gfs/uk/06/overview_030.jpg', 'images/chart.jpg')
self.the_24h_chart.source = 'images/chart.jpg'
self.Image.reload()
except:
print 'Error Updating Image'
pass
class ScreenManagerApp(App):
def build(self):
sm = ScreenManager()
self.chart1_screen = Chart1(name = 'chart1')
sm.add_widget(self.chart1_screen)
return sm
def on_start(self):
event1 = Clock.create_trigger(self.chart1_screen.update_chart1)
Clock.schedule_interval(self.chart1_screen.update_chart1, 3600) # 1 Hour
event1()
#===========================================================
# run the App !
ScreenManagerApp().run()
説明したように、これは 'Image.reload'のバグのようです。テストするための実行可能な最小限の例を提供できますか? – inclement
元の投稿を編集しましたが、リロードイメージエラーのある動作例 – northwarks