2016-05-03 6 views
0

Ich lese ein Python-Skript in als Text und mit den Argarse-Methoden in ihm geschrieben, um GUIs automatisch mit tkinter zu erstellen. Alles funktioniert gut, abgesehen von meinen Radioknöpfen, die ich aus irgendeinem Grund nicht zwingen kann, in einer großen Spalte westlich/links auszurichten. Sie sitzen nur in der Mitte davonPython tkinter align radio buttons west

Mein gesamter Code verwendet Grid, nicht Pack, und ich würde es lieber nicht ändern.

def create_radiobuttons(self, 
         arg): 
    """Creates a widget that will only accept one option 
    """ 

    ttk.Label(self.mainframe, text=arg['metavar']).grid(column=0, row=self.num, sticky=(N, E)) 
    var = StringVar() 
    for choice in arg['choices']: 
     box = Radiobutton(self.mainframe, text=choice, variable=var, value=choice, width=self.width) 
     box.grid(column=1, row=self.num, anchor=W) 
     self.num += 1 
    self.display_help(arg) 

    return box 

Vielen Dank!

+0

wenn würde wirklich hilfreich, wenn Sie ein vollständiges Arbeitsbeispiel liefern könnten (_not_ Ihr komplettes Programm). Siehe http://www.stackoverflow.com/help/mcve. –

+0

Und das Beispiel, das Sie zur Verfügung gestellt haben, hat eine Reihe von Problemen. Zum Beispiel nimmt grid keinen Anker, das sticky-Argument erwartet eine Zeichenfolge, kein Tupel usw. Diese Art von Problemen ist genau der Grund, warum Sie eine MCVE mit Ihrer Frage angeben müssen. –

Antwort

2

Das Attribut anchor gehört zum Radiobutton, so dass der Inhalt des Buttons auf der linken Seite des Widgets verankert ist.

Je nachdem, wie diese Spalte verwaltet wird, können Sie auch das sticky Attribut hinzufügen müssen, wenn grid anrufen, so dass das Widget als Ganze klebt an der linken Seite des Spalts es in platziert wird.

+0

Danke Bryan. Der Anker befand sich in meinem Beispiel in der .grid() -Methode, weil ich gerade etwas mit dem ich herumgespielt habe. Mein Fehler – WRJ