tkinter 包几何形状:1 列,一行有 4 个单选按钮?

2024-02-20

我想在一列中有四个水平按钮(整个 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 应用程序的。


当按钮垂直堆叠时,它们都在一列中。
假设你的意思是:“我想要四个水平按钮合而为一 row.",
每个按钮都位于该行的单独列中,
我的第一个建议是使用框架来包含按钮。

这是一个使用的示例grid http://effbot.org/tkinterbook/grid.htm以其row and column选项:

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()

或者你可以使用pack http://effbot.org/tkinterbook/pack.htm,与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()

有关变量类及其方法的信息,可以找到→here http://effbot.org/tkinterbook/variable.htm.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tkinter 包几何形状:1 列,一行有 4 个单选按钮? 的相关文章

随机推荐