Je travaille sur un projet d'affichage qui aura deux écrans montrant chacun des jauges et je ne peux pas obtenir le code de jauge de jardin Kivy de travailler avec un ScreenManager. Cela fonctionne très bien en tant qu'application autonome, mais je ne trouve aucune instruction pour m'aider à l'intégrer dans un écran. L'exemple de la calculatrice de Kivy fonctionne très bien à l'intérieur d'un écran de ScreenManager, mais c'est seulement .kv code, ma classe GaugeApp ne lancera aucune façon que je l'ai essayé quand il est placé dans un écran de ScreenManager.En utilisant kivy.garden.gauge dans ScreenManager
est ici le code autonome de travail:
from kivy.garden.gauge import Gauge
from kivy.app import App
dirflag = 1
value = 50
from kivy.uix.slider import Slider
from kivy.properties import NumericProperty
from kivy.uix.floatlayout import FloatLayout
from kivy.clock import Clock
class GaugeApp(App):
increasing = NumericProperty(1)
begin = NumericProperty(50)
begin2 = NumericProperty(25)
begin3 = NumericProperty(75)
step = NumericProperty(1)
def build(self):
box = FloatLayout(orientation='horizontal', padding=5)
self.gauge = Gauge(value=50, size_gauge=156, size_text=25, pos_hint={'x': .5, 'y': .2})
self.gauge2 = Gauge(value=10, size_gauge=226, size_text=25, pos_hint={'x': .22, 'y': .3})
self.gauge3 = Gauge(value=10, size_gauge=156, size_text=25, pos_hint={'x': .02, 'y': .2})
box.add_widget(self.gauge)
box.add_widget(self.gauge2)
box.add_widget(self.gauge3)
Clock.schedule_interval(lambda *t: self.gauge_increment(), 0.1)
return box
def gauge_increment(self):
begin = self.begin
begin += self.step * self.increasing
if begin > 0 and begin < 100:
self.gauge.value = begin
else:
self.increasing *= -1
self.begin = begin
begin2 = self.begin2
begin2 += self.step * self.increasing
if begin2 > 0 and begin2 < 100:
self.gauge2.value = begin2
else:
self.increasing *= -1
self.begin2 = begin2
# Main program
GaugeApp().run()
Toute aide à intégrer dans une mise en page de l'écran sera grandement appréciée.