如何在 tkinter 中将单选按钮向左对齐?

问题描述 投票:0回答:6

enter image description here

我的代码显示

radiobuttons
未对齐,点击图片即可查看,我想以更好的方式定义
var(1,2,3,4,5)

我对编程很陌生,但我尝试过使用

.pack()
side
anchor
justify

var1 = tk.StringVar()
var2 = tk.StringVar()
var3 = tk.StringVar()
var4 = tk.StringVar()
var5 = tk.StringVar()
var6 = tk.StringVar()
var7 = tk.StringVar()
var8 = tk.StringVar()

v = StringVar() 
rbutton=Radiobutton(tab2, text="ggdsh", variable=var1, value="1",width=15,justify=LEFT).grid(column=0,row=1,sticky=W)
rbutton2=Radiobutton(tab2, text="fjkhslafjksh", variable=var2, value="1",width=15,justify=LEFT).grid(column=0,row=2)
rbutton3=Radiobutton(tab2, text="sdjklfhsdfj", variable=var3, value="1",width=15,justify=LEFT).grid(column=0,row=3)
rbutton4=Radiobutton(tab2, text="skjlskhsdlgkjshgklsd", variable=var4, value="1",width=15,justify=LEFT).grid(column=0,row=4)
rbutton5=Radiobutton(tab2, text="sajfkshldjfhlsf", variable=var5, value="1",width=15,justify=LEFT).grid(column=0,row=5)
rbutton6=Radiobutton(tab2, text="sdfkj;kjfdlgh", variable=var6, value="1",width=15,justify=LEFT).grid(column=0,row=6)
rbutton7=Radiobutton(tab2, text="dsfjhkldsghsdghgfdsgdg", variable=var7, value="1",width=15,justify=LEFT).grid(column=0,row=7)
rbutton8=Radiobutton(tab2, text="gsjhdgjkdshl", variable=var8, value="1",width=15,justify=LEFT).grid(column=0,row=8)
python tkinter radio-button
6个回答
4
投票

只需使用

.pack(anchor=W)

Radiobutton(master=frame,text='Easy',padx = 20,variable=level,value=0,command=lambda : self.settings.setLevel(level.get())).pack(anchor=W)

0
投票

对所有重复的事情使用循环。 他们只需几行代码即可为您创建按钮。 如果有截图就好了。我很难理解你想要实现的目标。

这就是如何将标签放置在包装左侧:

w = Label(root, text="Blue", bg="blue", fg="white")
w.pack(side=LEFT)

使用网格,您可以将它们放在第一列中


0
投票
root = Tk()
root.geometry("600x400")
root.title("Radio Button")
colorVar = StringVar()
colorVar.set('#FF0000')
bgColors = [("blue", '#0000FF'),("red", '#FF0000'),("yellow", '#FFFF00'),("cyan", '#00FFFF'),("gray", "#888888")]
frame = Frame(root, width=30, height=70)
frame.pack()
for text, color in bgColors:
    Radiobutton(frame, text=text, variable=colorVar, value=color).pack(anchor=W)

0
投票

我想以更好的方式定义 var(1,2,3,4,5) 。

无需添加

Radiobutton
参数
width=15
justify=LEFT

使用迭代来减少小部件、项目的更简单方法。和

StringVar

片段:

import tkinter as tk


tab2 = tk.Tk()
 
v = tk.StringVar(tab2, "1")
 
# Dictionary to create multiple buttons
values = {"ggdsh" : "1",
          "fjkhslafjksh" : "2",
          "sdjklfhsdfj" : "3",
          "sajfkshldjfhlsf" : "4",
          "sdfkj;kjfdlgh": "5",
          "dsfjhkldsghsdghgfdsgdg": "6",
          "gsjhdgjkdshl": "7"}

for (text, value) in values.items():
    tk.Radiobutton(tab2, text=text, variable=v,
                   value=value).grid(column=0, row=value, sticky=tk.W)

tab2.mainloop()

截图:


0
投票
rbutton=Radiobutton(tab2, text="ggdsh", variable=var1, value="1").grid(column=0,row=1,sticky=tk.W)

这对我来说很合适。事实证明,问题在于在我的应用程序中指定

radiobutton
宽度并混合
.pack()
.grid()


0
投票

''' 对于 idx,enumerate(file_options) 中的选项: tk.Radiobutton(根,文本=选项,变量=var,值=选项).grid(行= idx + 1,列跨度= 2,粘性= tk.W) ,,,

© www.soinside.com 2019 - 2024. All rights reserved.