我正在尝试用 Python 和 Kivy 制作 tambola 硬币拾取器,我是 kivy 的新手。在这里,我创建了从 1 到 90 的网格布局按钮。我想在选择数字时更改网格布局中特定按钮的颜色。我在使用新的彩色按钮更新网格布局时遇到问题。#!/usr/bin/pythonfrom kivy.app import Appfrom kivy.uix.button import Buttonfrom kivy.uix.label import Labelfrom kivy.uix.floatlayout import FloatLayoutfrom kivy.uix.gridlayout import GridLayout from kivy.graphics import Colorimport randomcoins = random.sample(range(1,91), 90)#print(coins)picked_coins=[]current_coin=0#print(picked_coins)class Housie(FloatLayout): def __init__(self,**kwargs): super(Housie,self).__init__(**kwargs) self.title = Label(text="Housie Coin Picker",font_size = 50,size_hint=(1, .55),pos_hint={'x':0, 'y':.45}) self.main_label = Label(text = "Click PICK NUMBER", size_hint=(1, .60),pos_hint={'x':0, 'y':.35}) self.picked_ones = Label(text = "picked_coins", size_hint=(1, .40),pos_hint={'x':0, 'y':.40}) self.help_button = Button(text = "PICK NUMBER", size_hint=(.3, .1),pos_hint={'x':.65, 'y':.1},on_press = self.update) self.add_widget(self.title) self.add_widget(self.main_label) self.add_widget(self.picked_ones) self.add_widget(self.help_button) self.add_widget(self.userinterface()) def userinterface(self): self.layout = GridLayout(cols = 10,size_hint=(.50, .50)) for i in range(1,91): self.layout.add_widget(Button(background_color=(1,0,0,1),text =str(i))) return self.layout def update(self,event): for coin in coins: if coin not in picked_coins: current_coin=coin picked_coins.append(coin) self.main_label.text = str(coin) for i in self.layout.children: if i.text == str(coin): #What to do Here?
1 回答
鸿蒙传说
TA贡献1865条经验 获得超7个赞
您可以Button像这样将一个方法绑定到每个方法:
def userinterface(self):
self.layout = GridLayout(cols = 10,size_hint=(.50, .50))
for i in range(1,91):
self.layout.add_widget(Button(background_color=(1,0,0,1),text=str(i), on_release=self.butt_pressed))
return self.layout
def butt_pressed(self, button):
button.background_normal = ''
button.background_color = (1,0,0,1)
Thbutt_pressed()方法更改了 pessed 的背景颜色Button。
添加回答
举报
0/150
提交
取消