账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python tkinter中单选框Radiobutton的问题
    • 2020-01-01 00:00
    • 11
    29
    0

    设计一个问答游戏,由tkinter显示,sqlite作为数据库,每个智力问答由题目,四个选项和正确答案(question,answer_A,answer_B,answer_C,answer_D,right_answer)组成。程序中从试题库中读取题目显示在GUI界面中供用户答题。在界面设计时,智力问答题目是标签空间,4个选项是单选按钮控件,在“下一题”按钮单击事件中实现题目的切换和对错判断,如果正确得分socre加10分,错误不加分,并判断用户是否做完。在“结果”按钮单击事件中实现得分socre的显示

    sqlite生成生成试题库,读取试题信息都没有问题,在设计tkinter时,显示完第一题的选项后,第二题的选项并没有覆盖第一题的选项,而是显示在第一题的下方。

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    import sqlite3
    import tkinter as tk
    import tkinter.messagebox
    window=tk.Tk()
    window.title('Python智力问答游戏')
    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 ('q1','PAUL','TT','TEXAS','RIGHT','a1')")    #题目具体内容先由此代替
    c.execute("INSERT INTO COMPANY (QUESTION,ANSWER_A,ANSWER_B,ANSWER_C,ANSWER_D,RIGHT_ANSWER) \
          VALUES ('q2','mike','yy','u','RIGHT','a2')")
    c.execute("INSERT INTO COMPANY (QUESTION,ANSWER_A,ANSWER_B,ANSWER_C,ANSWER_D,RIGHT_ANSWER) \
          VALUES ('q3','luke','TT','jj','RIGHT','a3')")
    c.execute("INSERT INTO COMPANY (QUESTION,ANSWER_A,ANSWER_B,ANSWER_C,ANSWER_D,RIGHT_ANSWER) \
          VALUES ('q4','lina','TT','Tty','RIGHT','a4')")
    
    
    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='xiayiti',command=next_and_judge)
    b1.pack()**
    
    def sum():
        tkinter.messagebox.showinfo(title='END',message=str(score))
    
    b2=tk.Button(window,text='结束')
    b2.pack()
    
    
    conn.commit()
    print('operation done successfully')
    conn.close()
    window.mainloop()

    第一题覆盖显示第二题的选项,按下按钮“下一题”切换题目。

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部