如何在tkinter中并排打包3个单选按钮和1个标签?

问题描述 投票:1回答:1

这是我当前的输出:输出图像:“输出图像”“>

这仅是使用pack时的期望输出(用油漆重新创建期望的输出):所需图像:

“所需的图像”“>

如何通过使用包来实现?

这是我当前的代码:

    #Seperated into tabs
    notebook = ttk.Notebook(master)

    notebook.pack(expand = 1, fill = "both")
    #Frames
    main = ttk.Frame(notebook)
    notebook.add(main, text='Main-Screen') #Main screen

    left = ttk.Frame(main)
    left.pack(side = "left", expand = True, fill = 'y')

    right = ttk.Frame(main)
    right.pack(side = "right", expand = True, fill = 'y')

    self.info = ["test one", "test two", "test three"
             ]

    self.vars = []
    for idx,i in enumerate(self.info):
        self.var = IntVar(value=0)
        self.vars.append(self.var)
        self.lblOption = Label(main,text=i)
        self.btnYes = Radiobutton(right, text="Yes", variable=self.var, value=2)
        self.btnNo = Radiobutton(right, text="No", variable=self.var, value=1)
        self.btnNa = Radiobutton(right, text="N/A", variable=self.var,value=0)
        self.lblOption.pack(anchor = 'w')
        self.btnYes.pack(side = 'left')
        self.btnNo.pack(side = 'left')
        self.btnNa.pack(side = 'left')

这是我当前的输出:输出图像:这是我仅在使用pack时需要的输出(用油漆重新创建了我所需的输出):所需的图像:如何通过使用pack来实现?这是我的...

python tkinter
1个回答
0
投票

您可以按照以下步骤进行操作。在Frame循环中创建3个单独的for,然后在每个Frame中将边设置为左侧的小部件打包。

import tkinter as tk

root = tk.Tk()

vars_list = []

for i in ["test one", "test two", "test three"]:
    frame = tk.Frame(root)
    frame.pack()
    tk.Label(frame,text=i).pack(side="left")
    var = tk.IntVar(value=0)
    vars_list.append(var)
    tk.Radiobutton(frame, text="Yes", variable=var, value=2).pack(side="left")
    tk.Radiobutton(frame, text="No", variable=var, value=1).pack(side="left")
    tk.Radiobutton(frame, text="N/A", variable=var,value=0).pack(side="left")

root.mainloop()
© www.soinside.com 2019 - 2024. All rights reserved.