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

jei2mxaa  于 2024-01-05  发布在  Python
关注(0)|答案(6)|浏览(433)

enter image description here
我的代码显示了未对齐的radiobuttons,点击图片查看,我想用更好的方式定义var(1,2,3,4,5)
我对编程很陌生,但我尝试过使用.pack()sideanchorjustify

  1. var1 = tk.StringVar()
  2. var2 = tk.StringVar()
  3. var3 = tk.StringVar()
  4. var4 = tk.StringVar()
  5. var5 = tk.StringVar()
  6. var6 = tk.StringVar()
  7. var7 = tk.StringVar()
  8. var8 = tk.StringVar()
  9. v = StringVar()
  10. rbutton=Radiobutton(tab2, text="ggdsh", variable=var1, value="1",width=15,justify=LEFT).grid(column=0,row=1,sticky=W)
  11. rbutton2=Radiobutton(tab2, text="fjkhslafjksh", variable=var2, value="1",width=15,justify=LEFT).grid(column=0,row=2)
  12. rbutton3=Radiobutton(tab2, text="sdjklfhsdfj", variable=var3, value="1",width=15,justify=LEFT).grid(column=0,row=3)
  13. rbutton4=Radiobutton(tab2, text="skjlskhsdlgkjshgklsd", variable=var4, value="1",width=15,justify=LEFT).grid(column=0,row=4)
  14. rbutton5=Radiobutton(tab2, text="sajfkshldjfhlsf", variable=var5, value="1",width=15,justify=LEFT).grid(column=0,row=5)
  15. rbutton6=Radiobutton(tab2, text="sdfkj;kjfdlgh", variable=var6, value="1",width=15,justify=LEFT).grid(column=0,row=6)
  16. rbutton7=Radiobutton(tab2, text="dsfjhkldsghsdghgfdsgdg", variable=var7, value="1",width=15,justify=LEFT).grid(column=0,row=7)
  17. rbutton8=Radiobutton(tab2, text="gsjhdgjkdshl", variable=var8, value="1",width=15,justify=LEFT).grid(column=0,row=8)

字符串

u4vypkhs

u4vypkhs1#

使用.pack(anchor=W)即可

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

字符串

x8goxv8g

x8goxv8g2#

对所有重复的东西使用循环。他们会在几行代码中为你创建按钮。一个截图会很好。我很难理解你想实现什么。
这就是你如何将一个标签放在左边的包:

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

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

kxkpmulp

kxkpmulp3#

  1. root = Tk()
  2. root.geometry("600x400")
  3. root.title("Radio Button")
  4. colorVar = StringVar()
  5. colorVar.set('#FF0000')
  6. bgColors = [("blue", '#0000FF'),("red", '#FF0000'),("yellow", '#FFFF00'),("cyan", '#00FFFF'),("gray", "#888888")]
  7. frame = Frame(root, width=30, height=70)
  8. frame.pack()
  9. for text, color in bgColors:
  10. Radiobutton(frame, text=text, variable=colorVar, value=color).pack(anchor=W)

字符串

v8wbuo2f

v8wbuo2f4#

我想用更好的方式定义var(1,2,3,4,5)。
无需添加Radiobutton参数width=15justify=LEFT
使用迭代来减少小部件,项目和StringVar的更好方法。
片段:

  1. import tkinter as tk
  2. tab2 = tk.Tk()
  3. v = tk.StringVar(tab2, "1")
  4. # Dictionary to create multiple buttons
  5. values = {"ggdsh" : "1",
  6. "fjkhslafjksh" : "2",
  7. "sdjklfhsdfj" : "3",
  8. "sajfkshldjfhlsf" : "4",
  9. "sdfkj;kjfdlgh": "5",
  10. "dsfjhkldsghsdghgfdsgdg": "6",
  11. "gsjhdgjkdshl": "7"}
  12. for (text, value) in values.items():
  13. tk.Radiobutton(tab2, text=text, variable=v,
  14. value=value).grid(column=0, row=value, sticky=tk.W)
  15. tab2.mainloop()

字符串
截图:


的数据

展开查看全部
91zkwejq

91zkwejq5#

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

字符串
这就完成了我的工作。原来问题是在我的应用程序中指定radiobutton宽度和混合.pack().grid()

bpsygsoo

bpsygsoo6#

  1. val_options = [
  2. "val1",
  3. "val2",
  4. "val3",
  5. "val4",
  6. "val5",
  7. "val6",
  8. "val7",
  9. "val8",
  10. ]
  11. val_var = tk.StringVar()
  12. for idx, val_option in enumerate(val_options):
  13. tk.Radiobutton(root, text=val_option, variable=val_var, value=val_option).grid(row=idx + 1, columnspan=2, sticky=tk.W)

字符串

相关问题