Довольно плохо знаком с python, и в настоящее время я пытаюсь создать свое первое GUI приложение с TKinter. Приложение предлагает пользователю выбрать вариант из 4 раскрывающихся виджетов и выбрать «Отправить». Это приведет к экспорту электронной таблицы Excel (все еще для реализации).
Я получил GUI, работающий сам по себе, но я возникли проблемы с использованием глобальной переменной, которую мне нужно использовать между классами.
В настоящее время, когда я запускаю код, я получаю ошибку " init (), пропускающая 1 обязательный позиционный аргумент: 'submissions'" , Я попытался ввести «представления», например, «main_window = open_mainprogram (root, submissions)», но это выдает ошибку: «имя« представления »не определено».
Ниже приведен основной класс для моего GUI:
from tkinter import *
from global_stuff import *
#submissions = []
class open_mainprogram(global_stuff):
#submissions = []
def __init__(self, master, submissions):
#define main window#
self.master = master
master.title("Easier checking")
master.minsize(width=400, height=400)
master.maxsize(width=800, height=800)
#Program Description#
self.program_description= Label(self.master, text =("This program is to speed up the checking process by automating the filling in of the check list."))
self.program_description.grid(columnspan = 10)
#Label drop down menu week 1#
self.week_onelabel = Label(self.master, text = ("|Week One Checks:|"))
self.week_onelabel.grid(row = 2, column = 1)
#Create drop down menu week 1#
self.check_progressone = StringVar(self.master)
self.check_progressone.set("Pending")
self.select_optionone = OptionMenu(self.master, self.check_progressone, "Pending", "Completed")
self.select_optionone.grid(row = 3, column = 1)
#week 2#
#Label drop down menu#
self.week_onelabel = Label(self.master, text = ("|Week Two Checks:|"))
self.week_onelabel.grid(row = 2, column = 3)
#Create drop down menu#
self.check_progresstwo = StringVar(self.master)
self.check_progresstwo.set("Pending")
self.select_optiontwo = OptionMenu(self.master, self.check_progresstwo, "Pending", "Completed")
self.select_optiontwo.grid(row = 3, column = 3)
#week 3#
#Label drop down menu#
self.week_onelabel = Label(self.master, text = ("|Week Three Checks:|"))
self.week_onelabel.grid(row = 2, column = 5)
#Create drop down menu#
self.check_progressthree = StringVar(self.master)
self.check_progressthree.set("Pending")
self.select_optionthree = OptionMenu(self.master, self.check_progressthree, "Pending", "Completed")
self.select_optionthree.grid(row = 3, column = 5)
#week 4#
#Label drop down menu#
self.week_onelabel = Label(self.master, text = ("|Week Four Checks:|"))
self.week_onelabel.grid(row = 2, column = 7)
#Create drop down menu#
self.check_progressfour = StringVar(self.master)
self.check_progressfour.set("Pending")
self.select_optionfour = OptionMenu(self.master, self.check_progressfour, "Pending", "Completed")
self.select_optionfour.grid(row = 3, column = 7)
#submit button#
def submitted(self, submissions):
submitted_first = self.check_progressone.get()
submitted_second = self.check_progresstwo.get()
submitted_third = self.check_progressthree.get()
submitted_fourth = self.check_progressfour.get()
#global submissions
submissions = submitted_first + submitted_second + submitted_third + submitted_fourth
print (submissions)
return (submissions)
self.submit_button = Button(master, text = "Submit", command = submitted)
self.submit_button.grid(row = 4, column = 1)
#Exit button#
self.exit_button = Button(master, text = "Exit", command = (master.destroy))
self.exit_button.grid(row = 5, column = 8)
return (submissions)
root = Tk()
main_window = open_mainprogram(root)
root.mainloop()
И ниже мой класс глобальных переменных:
class global_stuff:
submissions = []
Что мне здесь не хватает?
Редактировать: Если я изменю ниже:
main_window = open_mainprogram(root)
В таком случае:
main_window = open_mainprogram(root, global_stuff)
Я получаю сообщение об ошибке " init () должен вернуть None, а не 'type'"