So habe ich ein Problem mit dem Bildschirmmanager zu verwenden. Da ich nun meine Screen-Klassen anlegen muss, um (Screen) anstelle von (GridLayout) überhaupt den Screenmanager zu verwenden, kann die Button/Layout-Verwaltung in Python nicht mehr kontrolliert werden? Es wurde verwendet, um 5 Spalten und 3 Zeilen für insgesamt 15 Tasten auf dem Bildschirm zu legen. Jetzt zeigt es nur ein großes mit (Screen) anstelle von Rasterlayout.Problem bei der Verwendung von ScreeManager mit Kivy - Tasten Layout funktioniert nicht mehr
class LandingScreen(Screen):
def build(self):
return presentation
def __init__(self, **kwargs):
super(LandingScreen, self).__init__(**kwargs)
self.cols = 5
self.buttons = [] # add references to all buttons here
# Loop to make 20 different buttons on screen
for x in range(15):
self.buttons.append(Button(text='button ' + str(x))) # make a reference to the button before adding it in
self.add_widget(self.buttons[x])
self.buttons[x].background_normal = 'YOUTUBE.png'
, wo die Tasten und Spalte Setup hier verwendet 3 Reihen von 5 Tasten mit dieser Schleife zu erstellen, ist es nicht, da ich (Screen) auf die Klasse statt (Gridlayout) zugegeben. Ich würde lieber nicht alle Schaltflächen in der .kv-Datei erstellen, da ich denke, dass es einfacher ist, in der .py zu verwalten und macht mehr Sinn für mich.
Hier ist meine .kv Datei:
<GridLayout>:
cols: 5
height: 480
width: 800
spacing: 25, 20
padding: 25,25
<MyScreenManager>:
LandingScreen:
InputScreen:
<InputScreen>:
AnchorLayout:
<LandingScreen>:
GridLayout:
cols: 5
height: 480
width: 800
spacing: 25, 20
padding: 25,25
Es ist offensichtlich überflüssig, weil ich versuche, herauszufinden, wie alle 15 Tasten wieder zeigen zu machen, nicht nur die eine.
Danke!
Super, danke für die Antwort . Soweit der self.ids.grid_1.cols Teil geht - kann also prinzipiell jede kivy Funktionalität in der .py Datei auf diese Weise bearbeitet werden? – John
@Austin, Ids können Sie auf jedes Widget verweisen und seine Methoden/Attribute in Python verwenden. Siehe https://kivy.org/docs/guide/lang.html#accessing-widgets-defined-inside-kv-lang-in-your-python-code – FJSevilla
Vielen Dank, das war ein grundlegender Teil von Kivy Ich habe nicht gegriffen. Das macht die Dinge jetzt in vielerlei Hinsicht einfacher. – John