鱼C论坛

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

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

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

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

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

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

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

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

    else:
        messagebox.showerror("Error","请阅读相关考试说明")

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

使用道具 举报

发表于 2020-9-25 09:59:00 | 显示全部楼层    本楼为最佳答案   
        btn_close=Button(window_close,text="关闭案例",font=("ArialBold",30),bg="red",command=lambda:Closewindows(window_close,a))#command事件的传参
command传参用这样的形式试试看,command=lambda:函数(参数)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

好像不可以。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-25 10:18:05 From FishC Mobile | 显示全部楼层
将num定义为全局变量试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-25 10:20:36 | 显示全部楼层
解决了  把num = question_num.get()写在answer_qusetion():这个函数里就好了 ,傻了傻了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

看看这篇文章https://blog.csdn.net/weixin_41098458/article/details/81781930
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 13:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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