There is a typeError that I can't seem to fix, it happens after running it and going through the quiz creator.
It says the error was from line 61 of the code
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\adria\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "C:/Users/adria/Downloads/cafe/test.py", **line 61**, in appendtofile
file = open(Path("quizs","{}.txt".format(self.file_name)),"a")
TypeError: an integer is required (got type str)
to the people who will help: thankyou for helping.
from tkinter import *
from pathlib import *
from os import *
def clearingthefrmae(x):
for widget in x.winfo_children():
widget.destroy()
class quizcreator():
def __init__(self, parent):
self.quiz_creator = Frame(parent, width=500, height=500)
self.quiz_creator.pack()
self.home_page()
def home_page(self):
label_name = Label(self.quiz_creator,text="Quiz creator", font="none 63 bold") .grid(row=0, column=0,columnspan=3,rowspan=3)
create_button = Button(self.quiz_creator,text="Create", command=lambda:[clearingthefrmae(self.quiz_creator),self.creating_quiz_page()]).grid(row=4,column=1)
def creating_quiz_page(self):
back_button = Button(self.quiz_creator,text="Back", width=4, command=lambda:[clearingthefrmae(self.quiz_creator),self.home_page()]).grid(row=0,column=0)
self.name()
def name(self):
name_label = Label(self.quiz_creator, text="What is the name of the quiz you are going to make: ").grid(row=1,column=0)
file_name = Entry(self.quiz_creator, width=50)
file_name.grid(row=2,column=0)
continue_button = Button(self.quiz_creator, text="Continue", command=lambda:[collect(self.quiz_creator)]).grid(row=3, column=0)
def collect(x):
files_name = file_name.get()
clearingthefrmae(x)
self.creator(files_name)
def creator(self,file_name):
self.file_name = file_name
questions=["what is the name of the question you wish to add: ","first choice: ","second choice: ","third choice: ","fourth choice: "]
user_answers=["question_name", "choice1", "choice2", "choice3", "choice4"]
self.answer = StringVar(self.quiz_creator," ")
Label(self.quiz_creator, text="Name of quiz/Name of text document:").grid(row=0,column=0)
Label(self.quiz_creator, text=file_name).grid(row=1,column=0)
for x in range(0,10,2):
Label(self.quiz_creator, text="{}".format(questions[int(x/2)])).grid(row=x+2, column=0)
user_answers[int(x/2)] = Entry(self.quiz_creator, width=60)
user_answers[int(x/2)].grid(row=x+3, column=0)
Label(self.quiz_creator, text="answer is: ").grid(row=13, column=0)
for x in range(0, 4):
Radiobutton(self.quiz_creator, text="choice {}".format(x+1), value=x, variable=self.answer,width=20).grid(row=14+x, column=0)
continue_button = Button(self.quiz_creator, text="Continue", command=self.appendtofile).grid(row=21, column=0)
def appendtofile(self):
file = open(Path("quizs","{}.txt".format(self.file_name)),"a")
file.write("{}\n".format(quiz_name))
file.write("[{},{},{},{},{},{}]\n".format(user_answers[0], user_answers[1], user_answers[2], user_answers[3], user_answers[4],self.answer.get()))
file.close()
if __name__ == "__main__":
try:
mkdir("scores")
mkdir("quizzes")
except Exception:
pass
quiz_creator_and_runner = Tk()
quiz_creator_and_runner.title("Quiz Creator & Runner")
quiz_creator_and_runner.geometry("500x500")
quizcreator(quiz_creator_and_runner)
quiz_creator_and_runner.mainloop()
Change this line to
file = open(Path("quizs","{}.txt".format(self.file_name)),"a")
this
file = Path("quizs","{}.txt".format(self.file_name)).open('a')