鱼C论坛

 找回密码
 立即注册
查看: 2830|回复: 1

Tkinter窗口循环的问题

[复制链接]
发表于 2020-9-25 15:58:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是一个自动阅卷的小程序,部分代码如下

  1.         def answer_qusetion():
  2.             num = question_num.get()
  3.             answer_root.destroy()
  4.             if num <= 0:
  5.                 messagebox.showerror("Error","Not null")
  6.             else:
  7.                 user_score = 0
  8.                 aq_root = Toplevel()
  9.                 aq_root.title("正在答题...")
  10.                 aq_root.iconbitmap('./img.ico')
  11.                 aq_root.geometry("600x400+450+300")

  12.                 # aq_root.resizable(FALSE, FALSE)

  13.                 # 获取excle中最大行,通过random(1,max_row)随机选择试题
  14.                 workbook = openpyxl.load_workbook('./题库.xlsx')
  15.                 worksheet = workbook.active
  16.                 max = worksheet.max_row
  17.                 x = random.randint(1, max)
  18.                 question_text = worksheet['A%d' % x].value
  19.                 option_A = worksheet['B%d' % x].value
  20.                 option_B = worksheet['C%d' % x].value
  21.                 option_C = worksheet['D%d' % x].value
  22.                 option_D = worksheet['E%d' % x].value
  23.                 right_answer = worksheet['F%d' % x].value
  24.                 Label(aq_root, text="%s"%question_text, font=('heiti', 12),wraplength=500,anchor=W, justify=LEFT).place(x=10, y=50)
  25.                 answer_var = StringVar()
  26.                 a1 = Radiobutton(aq_root, text='A:   %s' % option_A, variable=answer_var, value='A').place(x=20, y=150)
  27.                 a2 = Radiobutton(aq_root, text='B:   %s' % option_B, variable=answer_var, value='B').place(x=20, y=200)
  28.                 a3 = Radiobutton(aq_root, text='C:   %s' % option_C, variable=answer_var, value='C').place(x=20, y=250)
  29.                 a4 = Radiobutton(aq_root, text='D:   %s' % option_D, variable=answer_var, value='D').place(x=20, y=300)

  30.                 def next_question():
  31.                     aq_root.destroy()
  32.                     answer_qusetion()




  33.                 button_5 = Button(aq_root, text='下一题>>', bg="gray", width=20,
  34.                                   command=next_question).place(x=400,y=350)
复制代码

num = question_num.get()接收了用户输入的题数,在这个函数里应该怎么写这个循环呢,当题数用尽就销毁窗口,显示成绩。这是代码最后一点了,也是最难的,实在想不出来了。。。

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-25 19:55:14 | 显示全部楼层
应该用多线程
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 17:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表