저는 여전히 퀴즈 프로그램에서 작업하고 있지만, 현재 가지고있는 데이터베이스에서 검색된 질문을 증가시키는 프로그램을 얻는 데 문제가 있습니다. 데이터베이스의 다음 레코드로 이동하려고 할 때 페이지의 내용을 실제로 변경할 수 없었기 때문에 모든 것이 그대로 유지되며이 시점에서 문제를 해결할 수 없었습니다. 변수의 사용에 문제가있는 것처럼 느껴지지만이 문제를 해결할 수있는 방법은 없습니다. 여기에 내 코드의 섹션입니다 나는이 문제에 봉착 여기서tkinter를 사용하여 퀴즈의 sqlite 데이터베이스에서 질문을 늘릴 수 없습니다.
class ques(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
fetchrecNum = "SELECT MAX(qnumber) FROM questions"
cursor.execute(fetchrecNum)
self.recNum=str(cursor.fetchall())
self.recNum=self.recNum.strip("[('")
self.recNum=self.recNum.strip("',)]")
self.recNum=int(self.recNum)
recordNum = tk.Label(self, text = self.recNum)
recordNum.pack()
self.Qn = 1
self.quizScore = 0
fetchQ = "SELECT questioncontent FROM questions WHERE qnumber=?"
cursor.execute(fetchQ, [self.Qn])
Q=str(cursor.fetchall())
Q=Q.strip("[('")
Q=Q.strip("',)]")
question = tk.Label(self, text = Q)
question.pack()
fetchA1 = "SELECT qanswer1 FROM questions WHERE qnumber=?"
cursor.execute(fetchA1, [self.Qn])
A1=str(cursor.fetchall())
A1=A1.strip("[('")
A1=A1.strip("',)]")
answer1 = tk.Label(self, text = A1)
answer1.pack()
fetchA2 = "SELECT qanswer2 FROM questions WHERE qnumber=?"
cursor.execute(fetchA2, [self.Qn])
A2=str(cursor.fetchall())
A2=A2.strip("[('")
A2=A2.strip("',)]")
answer2 = tk.Label(self, text = A2)
answer2.pack()
fetchA3 = "SELECT qanswer3 FROM questions WHERE qnumber=?"
cursor.execute(fetchA3, [self.Qn])
A3=str(cursor.fetchall())
A3=A3.strip("[('")
A3=A3.strip("',)]")
answer3 = tk.Label(self, text = A3)
answer3.pack()
fetchA4 ="SELECT qanswer4 FROM questions WHERE qnumber=?"
cursor.execute(fetchA4, [self.Qn])
A4=str(cursor.fetchall())
A4=A4.strip("[('")
A4=A4.strip("',)]")
answer4 = tk.Label(self, text = A4)
answer4.pack()
fetchcA ="SELECT correctans FROM questions WHERE qnumber=?"
cursor.execute(fetchcA, [self.Qn])
self.cA=str(cursor.fetchall())
self.cA=self.cA.strip("[('")
self.cA=self.cA.strip("',)]")
def confirmAnswer(self):
answerGiven = self.enterAnswer
correctAnswer = self.cA
if answerGiven == correctAnswer:
self.rightOrWrong.configure(text ="Correct")
self.quizScore = (self.quizScore + 1)
else:
self.rightOrWrong.configure(text="Incorrect")
if self.Qn < self.recNum:
self.Qn = (self.Qn+1)
lambda: controller.show_frame(ques)
else:
self.rightOrWrong.configure(text="Quiz Complete! Your score was: " + str(self.quizScore))
내가 페이지의 내용을 변경하려고 노력에 대해 갈 수있는 방법을 다른 모르겠어요을하지만 난 내가 누군가로부터 배울 수 있기를 바랍니다 다른 곳에서는 아무도 주변에 아무도 (교사를 포함하여) 매우 도움이되지 않으며 이것이 내가 가진 최선의 선택입니다. 모든 도움을 미리 감사드립니다.
자신이 [A, 최소 완료하고 검증 가능한 예]를 제공 도와 줘요 싶어 경우 (https://stackoverflow.com/help/mcve). – Nae
하나의 검색어로 전체를 가져올 수 없습니까? 그리고 다른 질문을하기 위해 여러 번 실행할 수있는 분리 된 함수 (매개 변수 포함)에서이 작업을 수행해야합니다. '__init__'에서 빈 레이블 만 넣으면됩니다. – furas
왜 fetchall을'str()'으로 변환합니까? 이것 없이는'[('과')]'을 제거 할 필요가 없습니다. 튜토리얼을 찾고 데이터베이스 작업 방법을 배워야하는 것 같습니다. – furas