鱼C论坛

 找回密码
 立即注册
查看: 1551|回复: 5

[已解决]Tkinter模块问题求解

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

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

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

x
这是一个单选自动阅卷系统,部分代码如下
  1. def create_answer_window():
  2.     if messagebox.askokcancel("须知", "我已阅读考试相关说明"):
  3.         answer_root = Toplevel()
  4.         answer_root.title("正在答题...")
  5.         answer_root.geometry("400x100")
  6.         answer_root.resizable(FALSE,FALSE)
  7.         Label(answer_root, text="请输入答题数目>>", font=('heiti', 14)).place(x=20,y=10)
  8.         question_num = StringVar()
  9.         Entry(answer_root,textvariable=question_num,width=10).place(x=180,y=12)
  10. [color=Red]        num = question_num.get()[/color]

  11.         def answer_qusetion():
  12.             if num != None:
  13.                 # answer_root.destroy()
  14.                 print(num)
  15.                 aq_root = Toplevel()
  16.                 aq_root.title("正在答题...")
  17.                 aq_root.iconbitmap('./img.ico')
  18.                 aq_root.geometry("400x400")
  19.                 aq_root.resizable(FALSE, FALSE)
  20.                 Label(aq_root, text="题目>>", font=('heiti', 14)).place(x=20, y=10)
  21.                 print(num)

  22.             else:
  23.                 messagebox.showerror("Error", "Not null")
  24.             # 获取excle中最大行,通过random(1,max_row)随机选择试题
  25.             # workbook = openpyxl.load_workbook('./题库.xlsx')
  26.             # worksheet = workbook.active
  27.             # max = worksheet.max_row
  28.         button_4 = Button(answer_root, text='Start',bg="gray",width=20, command=answer_qusetion).place(x=200,y=50)

  29.     else:
  30.         messagebox.showerror("Error","请阅读相关考试说明")
复制代码


问题是这样的通过num = question_num.get()获取用户输入后,想判断是否为空,不为空则销毁这个窗口,进入答题界面,现在这个num变量传不到answer_qusetion():这个函数里,请问有什么办法吗?
最佳答案
2020-9-25 09:59:00
  1.         btn_close=Button(window_close,text="关闭案例",font=("ArialBold",30),bg="red",command=lambda:Closewindows(window_close,a))#command事件的传参
复制代码

command传参用这样的形式试试看,command=lambda:函数(参数)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-25 09:59:00 | 显示全部楼层    本楼为最佳答案   
  1.         btn_close=Button(window_close,text="关闭案例",font=("ArialBold",30),bg="red",command=lambda:Closewindows(window_close,a))#command事件的传参
复制代码

command传参用这样的形式试试看,command=lambda:函数(参数)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-25 10:11:05 | 显示全部楼层
疾风怪盗 发表于 2020-9-25 09:59
command传参用这样的形式试试看,command=lambda:函数(参数)

好像不可以。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-25 10:18:05 From FishC Mobile | 显示全部楼层
将num定义为全局变量试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-25 10:20:36 | 显示全部楼层
解决了  把num = question_num.get()写在answer_qusetion():这个函数里就好了 ,傻了傻了。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-25 10:22:31 | 显示全部楼层
狗宁 发表于 2020-9-25 10:11
好像不可以。。。

应该行的,之前有个帖子也是这个问题,运行成功了

看看这篇文章https://blog.csdn.net/weixin_41098458/article/details/81781930
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-27 14:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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