TKinter. Показ массива вводимых данных в режиме реального времени
Вводятся подряд числа в одно и тоже окно путем нажатия кнопки "добавить". Написали и добавили в массив, опять написали и вновь добавили и так далее
Стоит задача: пользователь должен видеть визуально введенный массив (список переменных)
Как в том же самом окне, куда вводятся данные, реализивать показ вводимых данных в режиме реального времени?
Что уже есть, по блокам (внизу блок с вопросом):
from tkinter import*
# Массив вводимых данных
array_of_rand_var = []
#Геометрия окна
master = Tk()
master.title("Вводим и видим")
master.geometry('500x250')
# Блок с параметрами массива переменных
# Объявляется поле ввода и его позиция
# Описывается текст к полю ввода и позиция текста
Buffer_rand_var = StringVar()
Buffer_rand_var_entry = Entry(master, textvariable = Buffer_rand_var)
Buffer_rand_var_entry.grid(row=0,column=1, padx=5, pady=5)
Buffer_rand_var_label = Label(master, text='Какую переменную вносим в массив?')
Buffer_rand_var_label.grid(row=0, column=0, sticky="w")
# Отображаем вводные данные в отдельном поле, но В ТОМ ЖЕ ОКНЕ
ВОТ ТУТ ПРЕДПОЛАГАЛОСЬ СОЗДАТЬ БЛОК ВЫВОДА ВВОДИМЫХ ДАННЫХ
master.mainloop()
Ответы (1 шт):
Не совсем понял, в какой момент значения должны добавляться в массив. Если вы хотите, чтобы пользователь видел свои числа, то он вроде как видит их при вводе :)
Могу предложить такую идею: пользователь вводит одно число, затем при нажатии пробела строка очищается, число добавляется в массив и содержимое массива выводится в окно.
Это можно сделать так:
1. Добавим еще один Label для отображения массива:
array_show = Label(master, text='Массив:')
array_show.grid(row=3, column=0, sticky="w")
2. Установим "слушатель пробелов" на поле ввода:
Buffer_rand_var_entry.bind("<space>", array_add)
3. Добавим функцию, которая будет добавлять элементы в массив:
def array_add(event):
global array_of_rand_var
var = int(Buffer_rand_var_entry.get())
array_of_rand_var.append(var)
Buffer_rand_var_entry.delete(0, END)
array_show['text'] = f'Массив: {array_of_rand_var}'
Полный код:
from tkinter import*
array_of_rand_var = []
def array_add(event):
global array_of_rand_var
var = int(Buffer_rand_var_entry.get())
array_of_rand_var.append(var)
Buffer_rand_var_entry.delete(0, END)
array_show['text'] = f'Массив: {array_of_rand_var}'
#Геометрия окна
master = Tk()
master.title("Вводим и видим")
master.geometry('500x250')
Buffer_rand_var = StringVar()
Buffer_rand_var_entry = Entry(master, textvariable = Buffer_rand_var)
Buffer_rand_var_entry.bind("<space>", array_add)
Buffer_rand_var_entry.grid(row=0,column=1, padx=5, pady=5)
Buffer_rand_var_label = Label(master, text='Какую переменную вносим в массив?')
Buffer_rand_var_label.grid(row=0, column=0, sticky="w")
array_show = Label(master, text='Массив:')
array_show.grid(row=3, column=0, sticky="w")
master.mainloop()