'Class for New Tkinter Window gives TypeEror: CreateSlider() missing 1 required positional Argument: 'SlideAsk'
I'm building a GUI which opens at specific moments and retrieves some questionnaire data. There are specific types of questionnaire windows, so I decided to make a class for it. When using it, I stumble upon the following error: TypeEror: CreateSlider() missing 1 required positional Argument: 'SlideAsk'
This is my first attempt at using a class like this so I am not certain if I did something fundamentally wrong or that its a minor issue. Other fixes proposed on the forum did not seem to work.
class Questionnaire:
global startrow,startcol
startrow = 1
startcol = 0
def __init__(self,width,height,IntroMessage,RadioAsk,Choose,SlideAsk):
global startrow,startcol
width = width
height = height
IntroMessage = IntroMessage
RadioAsk = RadioAsk
Choose = Choose
SlideAsk = SlideAsk
self = CTkToplevel()
self.geometry(f"{width}x{height}")
self.title("Questionnaire")
self.frame = CTkFrame(master=self)
self.frame.grid(row=0, column=1, sticky="nswe", padx=20, pady=20)
#try:
Intro = CTkLabel(self.frame, text= IntroMessage)
Intro.grid(row=startrow, column=startcol, columnspan=1, pady=20, padx=20, sticky="w")
startrow +=1
#except:
#pass
#try:
CreateSlider(SlideAsk)
#except:
#pass
#try:
CreateRadio(RadioAsk,Choose,startrow,startcol)
#except:
#pass
def CreateRadio(self,title,Choose):
label_Type = CTkLabel(master=self.frame,text=title)
label_Type.grid(row=startrow, column=startcol, columnspan=1, pady=0, padx=20, sticky="w")
startrow +=1
answer = StringVar()
answer.set(Choose[len(Choose)])
for text, mode in Choose:
RB = Radiobutton(self.frame, text=text, variable = answer, value = mode)
RB.grid(pady=5,padx=10,sticky="w")
startrow +=1
def CreateSlider(self,SlideAsk):
for q in SlideAsk:
label_Question = CTkLabel(master=self.frame,text= q)
label_Question.grid(row=startrow, column=0, columnspan=1, pady=10, padx=10, sticky="w")
startrow+=1
slider_Question = CTkSlider(master=self.frame,from_=1,to=5,number_of_steps=4)
slider_Question.grid(row=startrow, column=0, columnspan=2, pady=10, padx=20, sticky="w")
def Open_Break():
Questionnaire(width = 400,
height = 600,
IntroMessage = "Please, answer the questions below",
RadioAsk = "First question",
Choose = [
("Opt1","One"),
("Opt2","Two"),
("Opt3","Three"),
("Opt4","Four")],
SlideAsk = [
"This is the first question.",
"This is the second question.",
"This is the third question."])
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
