tkinter pack几何图形:一列中有4个单选按钮?

tkinter pack几何图形:一列中有4个单选按钮?,tkinter,python-2.7,Tkinter,Python 2.7,我希望在一列中有四个水平按钮(整个UI是一列)。我不知道如何使用“包几何体管理器”执行此操作。我已经求助于让按钮垂直,但一定有办法做到这一点。我是Python新手,因此我的代码非常简单: v = IntVar() Radiobutton(root, text="Red", variable=v, value=1, command = red).grid(row=1) Radiobutton(root, text="Blue", variable=v, value=2, command = b

我希望在一列中有四个水平按钮(整个UI是一列)。我不知道如何使用“包几何体管理器”执行此操作。我已经求助于让按钮垂直,但一定有办法做到这一点。我是Python新手,因此我的代码非常简单:

v = IntVar()

Radiobutton(root, text="Red", variable=v, value=1, command = red).grid(row=1) 
Radiobutton(root, text="Blue", variable=v, value=2, command = blue).grid(row=2)
Radiobutton(root, text="Green", variable=v, value=3, command = green).grid(row=3)
Radiobutton(root, text="Other", variable=v, value=4, command = Other).grid(row=4)

如果我把它们放在同一排,它们会叠在一起。我读了另一篇关于按钮分组的帖子,但那是针对Android应用程序的

当按钮垂直堆叠时,它们都在一列中。
假设您的意思是:“我希望在一行中有四个水平按钮,
当每个按钮位于该行的单独列中时,
我的第一个建议是使用一个框架来包含按钮

下面是一个使用其行和列选项的示例:

或者您也可以使用,将side选项设置为
“left”

下面是一个示例,其中按钮在循环中创建,并绑定到字典中的键:

import Tkinter as tki

def print_var(*args):
    print root.getvar(name=args[0])
    # or
    print var.get()

root = tki.Tk()

frm = tki.Frame(root, bd=16, relief='sunken')
frm.pack()

var = tki.StringVar()
var.trace('w', print_var)

b_dict = {'Mild':0, 'Medium':0, 'Hot':0}

for key in b_dict:
    b_dict[key] = tki.Radiobutton(frm, text=key, bd=4, width=12)
    b_dict[key].config(indicatoron=0, variable=var, value=key)
    b_dict[key].pack(side='left')

root.mainloop()

可以找到有关变量类及其方法的信息→ .

当按钮垂直堆叠时,它们都在一列中。
假设您的意思是:“我希望在一行中有四个水平按钮,
当每个按钮位于该行的单独列中时,
我的第一个建议是使用一个框架来包含按钮

下面是一个使用其行和列选项的示例:

或者您也可以使用,将side选项设置为
“left”

下面是一个示例,其中按钮在循环中创建,并绑定到字典中的键:

import Tkinter as tki

def print_var(*args):
    print root.getvar(name=args[0])
    # or
    print var.get()

root = tki.Tk()

frm = tki.Frame(root, bd=16, relief='sunken')
frm.pack()

var = tki.StringVar()
var.trace('w', print_var)

b_dict = {'Mild':0, 'Medium':0, 'Hot':0}

for key in b_dict:
    b_dict[key] = tki.Radiobutton(frm, text=key, bd=4, width=12)
    b_dict[key].config(indicatoron=0, variable=var, value=key)
    b_dict[key].pack(side='left')

root.mainloop()

可以找到有关变量类及其方法的信息→ .

我还不知道课程,但这肯定让我走上了正确的方向!谢谢。如果你要创建一个简单的行或列,我推荐
pack
over
grid
;它需要更少的代码
pack
擅长创建单行或单列。@user1332449建议阅读:&,我还不知道类,但这肯定让我走上了正确的方向!谢谢。如果你要创建一个简单的行或列,我推荐
pack
over
grid
;它需要更少的代码
pack
擅长创建单行或单列。@user1332449建议阅读:&,