我想在kivy中动态更改网格布局中窗口小部件的颜色

时间:2014-04-01 07:15:25

标签: python-2.7 opengl kivy

我想在网格布局中动态更改小部件的颜色 我怎样才能实现这一目标? 我创建了一个6x6的小部件矩阵,我需要动态地在网格布局中闪烁。

1 个答案:

答案 0 :(得分:0)

尝试创建网格小部件,然后只使用计划的功能更改小部件的颜色。下面的代码现在可能是完美的,但可以帮助您:

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.graphics import Color
from kivy.clock import Clock
import random


class RootWidget(GridLayout):
    pass

class MainApp(App):

    def build(self):
        parent = GridLayout(cols=6)
        Colour=[0,0,0,0]
        self.create_button(parent,Colour,1,1)
        Clock.schedule_interval(lambda a:self.update(parent), 1)
        return parent

    def update(self,obj):
        print "I am update function"
        obj.clear_widgets()
        print "random value is ",random.random()
        for i in (1,2,3,4,5,6):
            for j in (1,2,3,4,5,6):
                c=[random.random(),random.random(),random.random(),random.random()]
                d=[i,j]
                self.create_button(obj,c,i,j)

    def create_button(self,obj,color,i,j):

        a=Button(background_color=color,text='Hello World %s%s'%(i,j))
        obj.add_widget(a)




if __name__ == '__main__':
    MainApp().run()