I have made a little Quiz Game in Python. This was my first experience in programming Gui's in Python with Tkinter. In general, I do not have much knowledge about graphic programming and have acquired the necessary knowledge through skimming internet articles and try and error. Accordingly, the code looks like sciolism and semi-professional structuring. That should be improved. I will not be able to avoid a good basic tutorial on graphic programming, I think. However, if you have tips for me how to improve the style I would be grateful to hear them.
from tkinter import Tk, Frame, Label, Button from time import sleep class Question: def __init__(self, question, answers, correctLetter): self.question = question self.answers = answers self.correctLetter = correctLetter def check(self, letter, view): global right if(letter == self.correctLetter): label = Label(view, text="Right!") right += 1 else: label = Label(view, text="Wrong!") label.pack() view.after(1000, lambda *args: self.unpackView(view)) def getView(self, window): view = Frame(window) Label(view, text=self.question).pack() Button(view, text=self.answers, command=lambda *args: self.check("A", view)).pack() Button(view, text=self.answers, command=lambda *args: self.check("B", view)).pack() Button(view, text=self.answers, command=lambda *args: self.check("C", view)).pack() Button(view, text=self.answers, command=lambda *args: self.check("D", view)).pack() return view def unpackView(self, view): view.pack_forget() askQuestion() def askQuestion(): global questions, window, index, button, right, number_of_questions if(len(questions) == index + 1): Label(window, text="Thank you for answering the questions. " + str(right) + " of " + str(number_of_questions) + " questions answered right").pack() return button.pack_forget() index += 1 questions[index].getView(window).pack() questions =  file = open("questions.txt", "r") line = file.readline() while(line != ""): questionString = line answers =  for i in range (4): answers.append(file.readline()) correctLetter = file.readline() correctLetter = correctLetter[:-1] questions.append(Question(questionString, answers, correctLetter)) line = file.readline() file.close() index = -1 right = 0 number_of_questions = len(questions) window = Tk() button = Button(window, text="Start", command=askQuestion) button.pack() window.mainloop()
questions.txt (this file has to be in the same folder)
Where is Germany? In Europe In Great Britain In Asia In the USA A Where is England? In Asia On an island In the USA In China B What is the etymological meaning of antibiotics? For Life For Health Against Live Against Diseases C "Portability is for people who can not write new programs." From whom does the quote come from? Bill Gates Hillary Clinton Richard Stallman Linus Torvalds D Who is the richest man in the world? Jeff Bezos Bill Gates Donald Trump Me AX