我的应用程序有一个带有默认背景色的按钮。我只想将on_press
事件的背景颜色更改为另一种颜色。您可能认为它类似于html的已访问和未访问超链接,即,单击链接时,它会更改其颜色。
我的尝试:
#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')
from random import random
from random import choice
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.properties import StringProperty
Builder.load_string("""
<Highest>:
GridLayout:
cols: 1
Button:
text: "Hi"
on_press: root.new()
""")
class Highest(Screen):
def new(self):
self.background_color=(1.0, 0.0, 0.0, 1.0)
# Create the screen manager
sm = ScreenManager()
sm.add_widget(Highest(name='Highest'))
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()
但是on_press没有任何反应
@inclement
实际上,我试图将问题最小化。
我真正需要的是基于变量在不同条件下提供不同的颜色
class Highest(Screen):
def new(self):
if(a==5):
self.background_color=(1.0, 0.0, 0.0, 1.0)
else:
self.background_color=(1.0, 1.0, 1.0, 1.0)
所以我想在我的班级最高的课程中学习。请指导。提前致谢。
如果想将其保留在函数中,还可以向按钮添加一个id,然后从Highest实例中对其进行更改。
Builder.load_string("""
<Highest>:
GridLayout:
cols: 1
Button:
id: button_one
text: "Hi"
on_press: root.new()
""")
然后,您可以引用ID来更改颜色...
class Highest(Screen):
def new(self):
self.ids['button_one'].background_color = 1.0, 0.0, 0.0, 1.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句