本小白没深入了解过python的原理,多个文件只知道在一个.py文件里import另一个.py文件
但是问题来了 ,带着界面的被import后会又多出来一个窗口! 就算是调用一下函数都会再弹出一个界面!
于是,经过不断尝试我分享一下我的方法……(本小白还没用到类)
本人做了一个小工具,用到了图像比对的算法(大佬写的),又想不都写在界面.py上,于是……
界面.py(【向下传控件、控件里的参数(比如路径)】除了界面构建,包括最基础的界面label改变文字之类的;调用的执行函数里传入控件参数)(import 执行)
执行.py(【接收控件、控件里的参数并安排处理;向算法传控件参数】其中的函数如果涉及改变界面,则参数中添加控件参数;算法就调用并传入“传入的值”即可)(import算法)
算法.py(【接收控件参数处理后返回】干干净净写算法~)【其实是调用大佬放github上的代码,直接建文件被import用的】
下面我把比较简单的例子
(这个→https://blog.csdn.net/sinat_27382047/article/details/80227374)
扫描二维码关注公众号,回复:
260225 查看本文章
拆开一下
module0.py
# -*- coding: utf-8 -*- from tkinter import * import module1 #导入下一个模块 def start(): module1.SP(x,path,root)#执行module1文件的名叫SP的函数,并且把【控件和控件参数传进去】 path=r'C:\Windows'#遍历一下windows文件夹有多少个文件~ root = Tk() # 初始旷的声明 root.title('遍历文件夹') # 设置窗口标题 #======================================控件 x=StringVar() x.set("看看你的windows里有多少文件") label=Label(root,textvariable = x ,width=30)#x变label就变 label.grid(row=0,column=0,sticky=W)#显示label B=Button(root, text = "开始遍历",bg='yellow', command = start)#被点击执行start函数 B.grid(row=0,column=1,sticky=W)#显示button root.mainloop()
module1.py
import os import module2#导入下一个模块 def SP(x,path,root1):#控件、控件参数。传进来 now_schedule=0 for (root, dirs, files) in os.walk(path): for filename in files: now_schedule+=1 x.set(now_schedule) root1.update() #刷新界面!root1防重名 module2.Suanfa()module2.py
#import 某库 def Suanfa(): print("假装是算法处理的,没错我就是来卖萌的!")