2016-06-25 12 views
0

Ich kann nicht scheinen, Ausrichtung mit reinem Python-Code herauszufinden. Mein Verständnis ist, dass wir root beziehen, um relationale Ausrichtung zu erhalten. Ich konnte es jedoch nicht zur Arbeit bringen. Dieser Code wird kompiliert, ausgeführt und platziert den Button in der unteren linken Ecke. Bei den 0,0 Koordinaten. Was fehlt mir hier?Ausrichten von Kivy-Objekten mit reinem Python

class ContainerView(FloatLayout): 
    def __init__(self, **kwargs): 
     super(ContainerView, self).__init__(**kwargs) 

    def build(self): 
     new = Button() 
     new.text = "username" 
     new.size = (50,50) 
     new.color = [3/255,50/255,155/255,1] 
     new.size_hint = [0.5,0.5] 
     new.center = self.center ###This line 
     self.add_widget(new) 


class ScoreboardApp(App): 
    def build(self): 
     cView = ContainerView() 
     cView.build() 
     return cView 

Update:

Nach einer Reihe von Versuch und Irrtum Ich fand, dass die Fenstergröße einstellen und dann in der .kv Datei Ausrichten funktioniert, aber ich weiß nicht vollständig wissen, warum. Wenn ich die Fenstergröße auf der Konsole protokolliere, gibt es mir immer noch die tatsächlichen Abmessungen meines Computers.

main.py:

from kivy.core.window import Window 

### Set window size 
Window.size = (1440, 800) 

### Set size_hint in draw function 
class ClientScoreboard(GridLayout): 
    containerView = ContainerView() 
    numberOfRows = 0 
    numberOfColumns = 0 

    def buildClientScoreboard(self): 
     self.cols = self.numberOfColumns 
     self.rows = self.numberOfRows 
     self.size_hint = (0.75, 0.85) 

.kv

<ContainerView> 
    ClientScoreboard: 
     id: client_scoreboard 
     x: 375 
     y: self.parent.height - self.height - 25.0 

Ich vermute, es hat etwas mit Referenzierung FloatLayout als Mittelpunkt zu tun hat.

+0

Worauf soll die Schaltfläche ausgerichtet sein? – syntonym

+0

das Zentrum ... sehe die Linie, die er legte ### diese Linie –

Antwort

0

es (Ihr floatlayout) kennt nicht die Fenstergröße ... so verwendet es die Standardgröße von (100,100) ... so zentriert es den Knopf dort

bereites Schwimmer Layout seiner Größe

sagen
cView = ContainerView(size=(500,350)) 
+0

hätte ich auch so gedacht, aber es scheint, dass Sie das eigentliche Fenster verweisen müssen. –