2017-11-11 3 views
0

Ich bin ein Anfänger mit Kivy. Wie Sie sehen können, habe ich ein einfaches Fenster mit einer Schaltfläche erstellt. Aber warum ändert sich der Button nicht zu (200, 200)?Python/Kivy - Knopfposition

def build(self): 
    layout = BoxLayout(orientation='vertical') 
    self.labela = Label(text=celotnobesedilo, font_size=14) 
    gumb = Button(text='SEND', font_size=12, size_hint=(None, None), size=(200, 50), pos=(200, 200)) 
    gumb.bind(on_press=self.posljipodatke) 
    layout.add_widget(gumb) 
    layout.add_widget(self.labela) 
    return layout 

Was ist los? Schaltfläche wird angezeigt, aber immer auf Position (0,0). Tnx.

Antwort

0

Da Sie BoxLayout verwenden, hängt die Position der untergeordneten Elemente eines Boxlayouts von seiner Position ab. Sie können stattdessen ein floatlayout verwenden. Wenn Sie jedoch das Layout nicht ändern möchten, können Sie die Eigenschaft pos_hint verwenden :

def build(self): 
     layout = FloatLayout() 
     self.labela = Label(text='celotnobesedilo', font_size=14) 
     gumb = Button(text='SEND', font_size=12, size_hint=(None, None), size=(200, 50), pos=(200, 200)) 
     gumb.bind(on_press=self.posljipodatke) 
     layout.add_widget(gumb) 
     layout.add_widget(self.labela) 
     return layout 
+0

Tnx. Ich habe BoxLayout in FloatLayout geändert (und natürlich importiert), aber jetzt bekomme ich einen Fehler: "TypeError: object .__ init __() braucht keine Parameter" Warum? – JanezKranjski

+0

@JanezKranjski bitte entfernen Sie die Ausrichtung = vertikal von der Init Ihres Layouts wie ich in meiner Antwort –

+0

bearbeitet haben können Sie den vollständigen Fehler geben –

-1

BoxLayout platziert seine untergeordneten Elemente in Zeilen/Spalten. Wenn Sie eine bestimmte Position eines Kindes festlegen möchten, verwenden Sie etwas wie FloatLayout.