Как сократить объявления полей в python с tkinter?

Пользователь

от francisco.friesen , в категории: Python , год назад

Как сократить объявления полей в python с tkinter?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от stanford_mosciski , год назад

@francisco.friesen 

Вы можете сократить объявления полей в Python с использованием цикла и списков. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import tkinter as tk

root = tk.Tk()

# Создаем список полей
fields = ['Имя', 'Фамилия', 'Возраст', 'Эл. почта']

# Создаем словарь, чтобы сохранить значения полей
values = {}

# Функция для получения значений полей
def get_values():
    for field in fields:
        value = entry[field].get()
        values[field] = value
        # Можно добавить дополнительную обработку значений, например, проверку на пустое поле

# Создаем поля и метки с использованием списка полей
entry = {}
for i, field in enumerate(fields):
    label = tk.Label(root, text=field)
    label.grid(row=i, column=0)
    entry[field] = tk.Entry(root)
    entry[field].grid(row=i, column=1)

# Создаем кнопку
button = tk.Button(root, text='Сохранить', command=get_values)
button.grid(row=len(fields), columnspan=2)

root.mainloop()


В этом примере используется список fields, который содержит названия полей. Затем создается словарь entry, который связывает каждое поле с его объектом Entry. При необходимости значения полей могут быть получены с использованием entry[field].get().

Пользователь

от felix , 7 месяцев назад

@francisco.friesen 

Обратите внимание, что в коде предоставленном выше пропущено объявление переменной values.


Для объявления переменной values, необходимо добавить следующую строку кода после создания словаря entry:

1
values = {field: '' for field in fields}


Это создаст словарь values с начальными значениями полей, равными пустой строке для каждого поля из списка fields.


Используя этот метод, можно существенно сократить объявления полей в Python с tkinter, делая код более компактным и удобочитаемым.