2017-08-04 178 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()  

上面的代码显示了一些编号为1到6的单选按钮。但是,它将它们垂直显示而不是水平显示。有谁知道我该如何解决这个问题?如何在python中水平放置单选按钮

我已经尝试将row=0放在网格命令中,但这只能将按钮叠放在一起,而不是将它们排列在一行之外。

+0

在问这样一个基本问题之前,您应该阅读'grid'命令的文档。 'grid'有可让您指定特定行和特定列的选项。 –

回答

0

grid有两种放置小部件的选项。 rowcolumn。你需要指定两者。

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) 

另外,使用循环创建小部件时,最好将它们存储在列表中,因为稍后可以在程序中访问它们。