Как взять несколько входов и поместить все это в один список - PullRequest
0 голосов
/ 29 апреля 2020

Я python Новичок ie. Я попытался сделать калькулятор, который принимает пользовательский ввод и дает результат. Я хочу взять входные данные из всех записей в GUI и поместить их в список при нажатии кнопки.

Это команда, которую я пытался получить все входные данные, я не знаю, работает ли она или нет.

button = tk.Button(frame, text='Calculate', bg='blue', fg='white', command=lambda: testFunction(En1.get(), En2.get(), En3.get(), En4.get(), En5.get()))

Кстати, я не знаю, как написать функцию, которая принимает все входные данные и помещает их в список. Вы можете помочь мне с этим?

Ответы [ 3 ]

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

Вы не должны определять свою команду с такой сложной лямбдой. В идеале кнопка должна вызывать функцию, которая не принимает параметров. Это значительно упрощает отладку кода.

def do_calculation():
    e1 = En1.get()
    e2 = En2.get()
    e3 = En3.get()
    e4 = En4.get()
    e5 = Ent5.get()
    the_list = [e1, e2, e3, e4, e5)
    testFunction(the_list)
...
button = tk.Button(..., command=do_calculation)
0 голосов
/ 29 апреля 2020

Я могу посоветовать вам заменить эту лямбда-функцию, попробуйте определить другую функцию, например: (e - ваш виджет ввода)

def add() :
    lst=[]
    x=e.get()
    lst.append(x)
    e.delete(0,END)
0 голосов
/ 29 апреля 2020

Функция, подобная

def f(*args):
    return args

Принимает несколько аргументов и получает их в виде списка с именем args. Например, f(1, 2, 3) возвращает [1, 2, 3].

Однако почему бы просто не поместить записи в список? Например:

entries = [En1, En2, En3, En4, En5]
entries_get = []
for entry in entries:
    entries_get.append(entry.get())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...