python 其他.py 与tkinter界面传值的方法(以遍历文件夹进度为例)

本小白没深入了解过python的原理,多个文件只知道在一个.py文件里import另一个.py文件

但是问题来了 ,带着界面的被import后会又多出来一个窗口! 就算是调用一下函数都会再弹出一个界面!

于是,经过不断尝试我分享一下我的方法……(本小白还没用到类)


本人做了一个小工具,用到了图像比对的算法(大佬写的),又想不都写在界面.py上,于是……

界面.py(【向下传控件、控件里的参数(比如路径)】除了界面构建,包括最基础的界面label改变文字之类的;调用的执行函数里传入控件参数)(import 执行)

执行.py(【接收控件、控件里的参数并安排处理;向算法传控件参数】其中的函数如果涉及改变界面,则参数中添加控件参数;算法就调用并传入“传入的值”即可)(import算法)

算法.py(【接收控件参数处理后返回】干干净净写算法~)【其实是调用大佬放github上的代码,直接建文件被import用的】


下面我把比较简单的例子

(这个→https://blog.csdn.net/sinat_27382047/article/details/80227374)

拆开一下

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("假装是算法处理的,没错我就是来卖萌的!")


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章