草生鸣间 2021-06-25 23:07 采纳率: 81.8%
浏览 58
已结题

如何建立自定义模块并调用

from tkinter import *
from change import *

root = Tk()
root.geometry('480x480')
# 建立新窗口
def fun1():
    win = Toplevel()
    win.geometry('230x230')
    win.title('新窗口')
    Button(win,text='关闭',command=lambda :[win.destroy(),fun3()]).place(relx=0.4,rely=0.4)
# 改写按钮状态为’不可变‘
def fun2():
    but['state'] =DISABLED
# 改写按钮状态为’正常‘
def fun3():
    but['state']=NORMAL

but = Button(root,text='点击一次后状态改写',command=lambda :[fun1(),fun2()])        # (导入数据)建立新窗口
but.place(relx=0.3,rely=0.3,relwidth=0.4)
lb = Message(root,text='''点击一次按钮,弹出一个新窗口后,按钮的状态变为灰色,再次点击新窗口中的’关闭‘键后,按钮的状态恢复正常,即每次只能创建一次新窗口。''',relief=GROOVE)
lb.place(relx=0.1,rely=0.5,width=300,relheight=0.4)

root.mainloop()

我想把以上自定义函数全部放在另一个文件中,然后调用这个文件,但是不成功,原因是fun3(),fun2()中的but参数无法解析,我不知道该怎么改,谁能教教我,谢谢大佬!

  • 写回答

5条回答 默认 最新

  • 草生鸣间 2021-06-27 20:05
    关注
    from tkinter import *                       #  b.py  主程序段
    import a
    root = Tk()
    root.geometry('480x480')
    # 建立新窗口                                              # 把‘but’ 按钮从主程序传给a.py中    
    
    but = Button(root,text='点击一次后状态改写',command=lambda :[a.fun1(but),a.fun2(but)])        # (导入数据)建立新窗口
    but.place(relx=0.3,rely=0.3,relwidth=0.4)
    lb = Message(root,text='''点击一次按钮,弹出一个新窗口后,按钮的状态变为灰色,再次点击新窗口中的’关闭‘键后,按钮的状态恢复正常,即每次只能创建一次新窗口。''',relief=GROOVE)
    lb.place(relx=0.1,rely=0.5,width=300,relheight=0.4)
    
    root.mainloop()
    from tkinter import *                   #  a.py  放置函数的文件
    
    def fun1(but):
        win = Toplevel()                        # 关键在于给函数添加一个参数
        win.geometry('230x230')
        win.title('新窗口')
        Button(win,text='关闭',command=lambda :[win.destroy(),fun3(but)]).place(relx=0.4,rely=0.4)
    # 改写按钮状态为’不可变‘
    def fun2(but):
        but['state'] =DISABLED
    
    def fun3(but):
        but['state']=NORMAL
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 1月27日
  • 已采纳回答 1月19日

悬赏问题

  • ¥15 安卓13,动态广播无法接受
  • ¥50 docker运行容器端口如何映射(不重启服务、不重建容器)
  • ¥50 基于TwinCAT3实现力传感器的实时读取
  • ¥20 python求解八元一次不定方程,无数解中随机输出几组即可(相关搜索:用python)
  • ¥50 libreoffice导出PPTX到PDF中的错误换行问题
  • ¥15 python实现网页视频下载
  • ¥15 如何通过深度图获得物体的完整、正确点云?
  • ¥15 有没有操作系统适用白丁的经典的书籍,如何解决?(标签-学习)
  • ¥15 Catia V5 R20 64位 安装过程中选择orbix配置创建套接字失败
  • ¥100 C51单片机设计交通灯时出现的问题