Как упаковать в tkinter бок о бок с 3 радиокнопками и 1 этикеткой? - PullRequest
1 голос
/ 01 ноября 2019

Это мой текущий вывод:
Выходное изображение:
Output Image

Это мой желаемый вывод только с использованием пакета (Используется краска для воссоздания моего желаемоговыходные данные):
Требуемое изображение:
Desired image

Как этого можно добиться с помощью пакета?

Вот мой текущий код:

    #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')

1 Ответ

0 голосов
/ 01 ноября 2019

Вы можете сделать это, как показано ниже. Создайте 3 отдельных Frame в цикле 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...