Я пытаюсь написать программу, в которой будут отображаться 4 строки из 2 столбцов, причем столбец 0 является метками, а столбец 1 - это записи. Затем передайте эти 4 целых элемента через аргументы в функцию, когда нажата кнопка. Вот мой код до сих пор:Python/Tkinter - кнопка для запуска функции с несколькими аргументами не работает
from tkinter import *
root = Tk()
class ClassName():
def __init__(self, master):
self.run_button = Button(self.master, text="Button Text", bg="green", fg="black",
command="HERE IS WHERE I NEED HELP")
self.run_button.grid(row=4, columnspan=2)
self.label1 = Label(master, text="Entry 1").grid(row=0, sticky=E)
self.label2 = Label(master, text="Entry 2").grid(row=1, sticky=E)
self.label3 = Label(master, text="Entry 3").grid(row=2, sticky=E)
self.label4 = Label(master, text="Entry 4").grid(row=3, sticky=E)
self.entry1 = Entry(master).grid(row=0, column=1, sticky=W)
self.entry2 = Entry(master).grid(row=1, column=1, sticky=W)
self.entry3 = Entry(master).grid(row=2, column=1, sticky=W)
self.entry4 = Entry(master).grid(row=3, column=1, sticky=W)
Я хочу, чтобы затем взять 4 записи и передавать их через другую функцию под названием the_function
. Все the_function
действительно распечатывает что-то, основанное на значениях 4 записей. Так что мой Остальной код выглядит следующим образом:
def the_function(self, a, b, c, d):
# Ensure a, b, c, and d are integers,
# do some math on the numbers and print something out based on the
# values of a, b, c and d.
irrelevant_variable = ClassName(root)
root.mainloop()
Функция работает должным образом без графического интерфейса, но я не могу понять, как создать кнопку, которая принимает self.entry1
и передает его через, как a
в the_function
.
Другие сообщения привели меня к мысли, что я должен использовать команду lambda
, но я не уверен, как это будет работать в рамках этой функции.
Вы [не должны назначать виджет в той же строке, что вы 'grid' it] (http://stackoverflow.com/questions/1101750/tkinter-attributeerror-nonetype-object-has-no-attribute-get) , Вы используете учебник? Я пытаюсь определить, имеет ли эта распространенная ошибка один источник, или каждый новый пользователь становится жертвой этого независимо. – Kevin
Марк, пожалуйста, ответьте на вопрос Кевина в комментарии здесь. Пожалуйста, разместите ссылку на учебник, который вы используете, чтобы мы могли помешать другим людям иметь такую же проблему в будущем. –
@Kevin - Я обычно не пропускаю задания виджетов с помощью цепочки геометрических методов, но я сделал это сегодня. :) Я упомянул об этом в своем ответе. – TigerhawkT3