Как ввести массив в запись TKinter?

#python #arrays #tkinter

Вопрос:

Как ввести элементы массива в запись TKinter? Для консоли это выглядит так:

 lst1 = []
lst2 = []

lst1 = [int(item) for item in input("Enter the list items : ").split()]

lst2 = [int(item) for item in input("Enter the list items : ").split()]

print(lst1)
print(lst2)
 

Комментарии:

1. Что ты хочешь сделать? Вход в массив автоматически?

2. Вы смотрели какие tkinter -нибудь учебные пособия? Знаете ли вы, как создать простое окно tkinter/добавить виджеты в это окно? Я думаю, вы знаете, что вам понадобится куча tkinter.Entry s, которые создаются динамически? Существуют ли какие — либо ограничения на размер вводимых пользователем данных?

Ответ №1:

Пример:

 import tkinter as tk
lst1 = []
lst2 = []

def enterItems():
    items1 = entry1.get()
    items2 = entry2.get()
    lst1 = [int(item) for item in items1.split()]
    lst2 = [int(item) for item in items2.split()]
    entry1.destroy()
    entry2.destroy()
    button.destroy()
    displayText = tk.Text(root)
    displayText.grid()
    displayText.insert('1.0','List 1:n' str(lst1) 'nnList 2:n' str(lst2))


if __name__== "__main__":
    root = tk.Tk()
    entry1 = tk.Entry(root, text = 'enter array 1 here')
    entry1.grid()
    entry2 = tk.Entry(root, text = 'enter array 2 here')
    entry2.grid()
    button = tk.Button(root, text = 'submit', command = enterItems)
    button.grid()
    root.mainloop()
 

Комментарии:

1. Вложенные функции в большинстве случаев считаются плохой практикой. Также вы никогда не звоните root.mainloop() (вы пропустили скобки).

2. Просто примечание: не лучше ли было бы уничтожить 2 записи и кнопку вместо того, чтобы уничтожать окно и создавать новое? Кроме того, отличный ответ

3. @TheLizzard Я думаю, что это было бы лучше, так как потребуется хранить меньше информации. (Я снова отредактировал ответ, чтобы сделать это; еще раз спасибо за вклад!)