2017-08-04 2 views
-1
AANTAL = [(1,"1"),(2,"2"),(3,"3"),(4,"4"),(5,"5"),(6,"6"),] 
v= StringVar() 
v.set("1") 

for text, mode in AANTAL: 
but = Radiobutton(Main,padx=20, pady=10,font=('arial', 20, "bold"), bd=4, 
text=text, variable=v, value=mode, indicatoron=0) 
but.grid()  

Der obige Code zeigt einige Radiobuttons mit den Nummern 1 bis 6. Sie werden jedoch vertikal statt horizontal angezeigt. Weiß jemand, wie ich das beheben könnte?So platzieren Sie Radiobuttons horizontal in Python

Ich habe bereits versucht, row=0 in den Raster-Befehl zu setzen, aber dies stapelt nur die Schaltflächen übereinander, anstatt sie über eine Reihe verteilt.

+0

Sie sollten die Dokumentation zum Befehl 'grid' lesen, bevor Sie eine solche grundlegende Frage stellen. 'grid' hat Optionen, mit denen Sie eine bestimmte Zeile und eine bestimmte Spalte angeben können. –

Antwort

0

grid hat zwei Optionen zum Platzieren eines Widgets. rowundcolumn. Sie müssen beide angeben.

buttons = [] 
vars = [] 
for idx, (text, mode) in enumerate(AANTAL): 
    vars.append(StringVar(value="1")) 
    buttons.append(Radiobutton(Main,padx=20, pady=10,font=('arial', 20, "bold"), bd=4, text=text, variable=vars[-1], value=mode, indicatoron=0)) 
    buttons[-1].grid(row=0, column=idx) 

Auch wenn Schleifen mit Widgets zu erstellen, ist es viel besser, sie in einer Liste zu speichern, weil Sie sie später in Ihrem Programm zugreifen kann.

Verwandte Themen