from kivy.uix.button import Button
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.scrollview import ScrollView
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.floatlayout import FloatLayout
from kivy.metrics import *
from kivy.uix.image import Image
from kivy.uix.label import Label
from kivy.properties import *
from kivy.clock import Clock
class main(BoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.orientation = "vertical"
snf = Label(size_hint_y=.1,text="Sınıf İsmi/Şube")
self.add_widget(snf)
gen = ScrollView(size_hint_y=.9)
self.add_widget(gen)
genel = BoxLayout(orientation="vertical",size_hint_y=None,height=dp(3500))
gen.add_widget(genel)
for i in range(10):
genel.add_widget(kisi())
class kisi(FloatLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.size_hint = (1,None)
self.height = dp(350)
kpp = Image(size_hint=(.3,None),height=dp(100),pos_hint={'x':0,'y':.7125})
self.add_widget(kpp)
stnick = Label(size_hint_x=(.7,.1),pos_hint={'x':.5,'y':.4},text=self.öism)
self.add_widget(stnick)
self.btn1 = Button(text="Geldi",pos_hint={'x':0,'y':.6},size_hint=(.3,.1))
self.btn1.bind(on_release=self.renk)
self.btn2 = Button(text="Gelmedi",pos_hint={'x':0,'y':.5},size_hint=(.3,.1))
self.btn2.bind(on_release=self.renk2)
self.btn3 = Button(text="Geç Geldi",pos_hint={'x':0,'y':.4},size_hint=(.3,.1))
self.btn3.bind(on_release=self.renk3)
self.add_widget(self.btn1)
self.add_widget(self.btn2)
self.add_widget(self.btn3)
Clock.schedule_interval(self.kont, 1)
öism =StringProperty("Öğrenci İsmi")
renk = "0"
renk1 ="0"
renk2 ="0"
def renk(self,b):
self.btn1.background_color = (1,0,0,1)
self.renk = "1"
self.renk1 = "0"
self.renk2 = "0"
self.btn2.background_color = (1, 1, 1, 1)
self.btn3.background_color = (1,1,1,1)
def renk2(self,b):
self.btn2.background_color = (1,0,0,1)
self.btn1.background_color = (1,1,1,1)
self.btn3.background_color = (1,1,1,1)
self.renk = "0"
self.renk1 = "1"
self.renk2 = "0"
def renk3(self,b):
self.renk = "0"
self.renk1 = "0"
self.renk2 = "1"
self.btn2.background_color = (1, 1, 1, 1)
self.btn1.background_color = (1, 1, 1, 1)
self.btn3.background_color = (1, 0, 0, 1)
def kont(self,b):
if self.renk == "1":
print("Geldi")
else:
pass
class app(App):
def build(self):
return main()
if __name__ == "__main__":
app = app()
app.run()
amaçladığım şey butonların renginin değiştirilebilmesi ancak başlıkta gördüğünüz hatayı almaktayım aslında burda renk diye ayrı ayrı string vermeden önce denediğim başka bir yöntem vardı :
direk if self.btn1.background_color == (1,0,0,1):
print("a")
ancak bu yöntem niye çalışmadı bilmiyorum ikisinden herhangi birinin çözümü de işime yarar.Ayrıca sanırım burada remove_widget()
ifadesini kullabiirim ancak bunu yaparsam kodun diğer bölümlerini kısıtlayacağı için yapmadım.şimididen teşekkürler yardımlarınız için.