Создайте два столбца полей ввода, используя tkinter - PullRequest
0 голосов
/ 08 апреля 2020

Я хочу создать динамический c GUI, который изменит количество полей ввода на основе пользовательского ввода (numshoes)

Я успешно сделал это ниже ... однако, я хочу два поля ввода в строке, сейчас у меня только один.

Я думал, self.entrys[-1].grid(row=ii, column=2) добавит еще один столбец входов, но у меня все еще есть только один.

Есть мысли?

import tkinter as tk
from tkinter import *

numshoes = 6 
shoes = ['shoe1', 'shoe2', 'shoe3', 'shoe4', 'shoe5','shoe6']

master = tk.Tk()

class test:
    def __init__(self, root):
        self.variables = []
        for i in range(numshoes):
            self.variables.append(StringVar())

        self.labels = []
        self.entrys = []
        for ii in range(numshoes):
            char = str((shoes[ii]))
            self.labels.append(Label(root , text = char))
            self.labels[-1].grid(padx=0, pady=0, row=ii, column=0)
            self.entrys.append(Entry(root, textvariable =self.variables[ii]))
            self.entrys[-1].grid(padx=0, pady=0, row=ii, column=1)
            self.entrys[-1].grid(row=ii, column=2)

root = Tk()
tk.Button(root, text='Finish',command=master.quit).grid(row=(numshoes+1), column=1,sticky =tk.W, pady=4)

# root.geometry("200x600+50+50")
T = test(root)
root.mainloop()

1 Ответ

0 голосов
/ 08 апреля 2020

Я думал, что self.entrys [-1] .grid (строка = ii, столбец = 2) добавит еще один столбец входных данных, но у меня все еще есть только один.

Нет , он только перемещает эту запись в столбец 2. Если вы хотите, чтобы два Entry виджета в строке, вы должны создать два Entry виджета для каждой строки.

...