Mějme
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
definice par funkci..
class MainWindow(GridLayout):
def __init__(self, **kwargs):
super(MainWindow, self).__init__(**kwargs)
layout_sub = BoxLayout(orientation='vertical')
layout = GridLayout(cols=2)
x = 0
for i in a:
button = Button(text=str(i) +"\n" + str(a[i]))
button.bind(on_press=vyber)
button.myname = "button"+str(x)
layout.add_widget(button)
x+=1
layout_sub.add_widget(layout)
layout = GridLayout(cols=2)
global entry_1
entry_1 = TextInput()
layout.add_widget(entry_1)
button = Button(text="<-")
button.bind(on_press=erase)
layout.add_widget(button)
layout_sub.add_widget(layout)
layout = GridLayout(cols=3)
for i in c:
button = Button(text=str(i))
button.bind(on_press=press)
layout.add_widget(button)
layout_sub.add_widget(layout)
self.add_widget(layout_sub)
class MyApp(App):
def build(self):
return MainWindow()
if __name__ == '__main__':
MyApp().run()
Myslel jsem, že když půjdu sestupně "MainWindow.BoxLayout.GridLayout.button1" budu schopen přistupovat na konkrétní tlačítko, ale dostávám AttributeError: type object 'MainWindow' has no attribute 'BoxLayout'
Zkoušel jsem přistupovat přímo na název tlačítka "button1", ale to není globální, čili jsem to zkusil přepsat po vzoru TextInputu
for i in a:
name = "button"+str(x)
global name
name = Button(text=str(i) +"\n" + str(a[i]))
name.bind(on_press=vyber)
layout.add_widget(name)
x+=1
kde, ale pořád dostávám error o neexistenci globálního tlačítka.
Otázka tedy zní jak přistupovat na konkrétní tlačítka?