在screenmanager中使用kivy.garden.gauge

时间:2017-05-05 14:39:59

标签: python-2.7 screen kivy

我正在制作一个显示项目,它将有两个屏幕,每个显示仪表,我无法获得kivy garden规范代码与屏幕管理器一起工作。 它作为一个独立的应用程序工作正常,但我找不到任何指示,以帮助我将其合并到一个屏幕。 kivy计算器示例在屏幕管理器屏幕内正常工作,但这只是.kv代码,我的GaugeApp类在放置在screenmanager屏幕时不会以任何方式运行。

这是有效的独立代码:

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()

非常感谢任何帮助将其纳入屏幕布局。

1 个答案:

答案 0 :(得分:0)

很久以前,但如果你还有问题: https://groups.google.com/d/msg/kivy-users/I0_xBF3DlAM/9M2ppsWnngQJ

我复制了&#34; garden.gauge&#34; c:\。kivy \ garden \中的文件夹,给它一个新名称。然后按照链接中的说明对 init .py进行更改。现在它有效。