【发布时间】:2019-03-28 15:14:55
【问题描述】:
如何在 tkinter 中使用按钮功能更改 Radiobutton?按下按钮并 然后更改 Radiobuttons 的文本值。这是一个问答游戏。题库存放在sqlite3中,按下按钮'next',Radiobuttons得到新的答案,Label得到新的qusetion。
import sqlite3
import tkinter as tk
import tkinter.messagebox
window=tk.Tk()
window.title('Python Qusz game')
window.geometry('400x400')
v=tk.StringVar()
v.set(1)
score=0
num=0
conn = sqlite3.connect('test.db')
c=conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS COMPANY
(QUESTION TEXT NOT NULL,
ANSWER_A TEXT NOT NULL,
ANSWER_B TEXT NOT NULL,
ANSWER_C TEXT,
ANSWER_D TEXT,
RIGHT_ANSWER TEXT);''')
c = conn.cursor()
c.execute("INSERT INTO COMPANY (QUESTION,ANSWER_A,ANSWER_B,ANSWER_C,ANSWER_D,RIGHT_ANSWER) \
VALUES ('qus_1','ans_1','ans_2','ans_3','ans_4','right_ans1')")
c.execute("INSERT INTO COMPANY (QUESTION,ANSWER_A,ANSWER_B,ANSWER_C,ANSWER_D,RIGHT_ANSWER) \
VALUES ('qus_2','ans_1','ans_2','ans_3','ans_4','right_ans2')")
c.execute("INSERT INTO COMPANY (QUESTION,ANSWER_A,ANSWER_B,ANSWER_C,ANSWER_D,RIGHT_ANSWER) \
VALUES ('qus_3','ans_1','ans_2','ans_3','ans_4','right_ans3')")
c.execute("INSERT INTO COMPANY (QUESTION,ANSWER_A,ANSWER_B,ANSWER_C,ANSWER_D,RIGHT_ANSWER) \
VALUES ('qus_4','ans_1','ans_2','ans_3','ans_4','right_ans4')")
cursor=c.execute("select QUESTION, ANSWER_A, ANSWER_B, ANSWER_C, ANSWER_D, RIGHT_ANSWER from COMPANY")
value=cursor.fetchall()
var=tk.StringVar()
var.set(value[0][0])
l1=tk.Label(window,textvariable=var)
l1.pack()
def next_and_judge():
global score
global num
r1 = tk.Radiobutton(window, text=value[num][num+1], variable=v, value=1)
r1.pack()
r2 = tk.Radiobutton(window, text=value[num][num+2], variable=v, value=2)
r2.pack()
r3 = tk.Radiobutton(window, text=value[num][num+3], variable=v, value=3)
r3.pack()
r4 = tk.Radiobutton(window, text=value[num][num+4], variable=v, value=4)
r4.pack()
num=num+1
if var.get()==value[num-1][5]:
score=10+score
b1=tk.Button(window,text='next',command=next_and_judge)
b1.pack()
def sum():
tkinter.messagebox.showinfo(title='END',message=str(score))
b2=tk.Button(window,text='finish')
b2.pack()
conn.commit()
print('operation done successfully')
conn.close()
window.mainloop()
使用 sqlite3
【问题讨论】:
-
value和var是什么?将它们添加到您的代码中 -
增值和变量
标签: python tkinter radio-button