ボタンを縦に並べると、すべてが 1 つの列に収まります。「1 つの行に 4 つの水平ボタンを配置したい
」という意味であると仮定すると、
各ボタンがその行の個別の列にある場合
、最初の推奨事項はフレームを使用してボタンを含めることです。
行と列のオプションを指定してgridを使用した例を次に示します。
import Tkinter as tki # tkinter in Python 3
root = tki.Tk()
frm = tki.Frame(root, bd=16, relief='sunken')
frm.grid()
var = tki.StringVar()
mild = tki.Radiobutton(frm, text='Mild', variable=var)
mild.config(indicatoron=0, bd=4, width=12, value='Mild')
mild.grid(row=0, column=0)
medium = tki.Radiobutton(frm, text='Medium', variable=var)
medium.config(indicatoron=0, bd=4, width=12, value='Medium')
medium.grid(row=0, column=1)
hot = tki.Radiobutton(frm, text='Hot', variable=var)
hot.config(indicatoron=0, bd=4, width=12, value='Hot')
hot.grid(row=0, column=2)
root.mainloop()
または、sideオプションを に設定してpackを使用することもできます。
ボタンがループで作成され、辞書のキーにバインドされる例を次に示します。'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()
変数クラスとそのメソッドに関する情報は、 →こちらにあります。