#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 Я думаю, что это было бы лучше, так как потребуется хранить меньше информации. (Я снова отредактировал ответ, чтобы сделать это; еще раз спасибо за вклад!)