有两个py文件,a.py是gui窗体,b.py是执行程序。
当a.py点击按钮时,b.py程序开始执行数据处理;
同时b.py中,print出来的信息,实时在a.py的文本框中显示出来。代码和显示示例如下。
请问如何实现
a.py
import tkinter as tk
# import b
root = tk.Tk()
root.resizable(width=False, height=False)
root.geometry("300x200+300+200")
def show():
text.insert(tk.END, "希望实时显示b.py print的信息\n")
text.update()
btn = tk.Button(root, text="开始执行b.py",
width=10, bg="red",
command=show)
btn.pack(side=tk.TOP)
text = tk.Text(root, )
text.pack(side=tk.LEFT)
root.mainloop()
b.py
from os import listdir
# import pandas as pd
filepath = listdir(".")
for i in filepath:
if i.endswith(".csv"):
print("开始处理{}文件".format(i))
# data = pd.read_csv(i)
'''处理过程略'''
print("处理完成")
显示出如下gui
print本身就是向控制台打印信息,你要想向text文本框里插入信息,只能把b.py做成函数,然后text插入函数返回的值。或者就把这个函数放在a.py里。
def dir_list():
filepath = listdir(".")
for i in filepath:
if i.endswith(".csv"):
print("开始处理{}文件".format(i))
# data = pd.read_csv(i)
'''处理过程略'''
return "处理完成"
或者放在a.py里:
def dir_list():
filepath = listdir(".")
for i in filepath:
if i.endswith(".csv"):
text.insert(tk.END,"开始处理{}文件".format(i))
text.update()
# data = pd.read_csv(i)
'''处理过程略'''
text.insert(tk.END, "处理完成")
text.update()
def show():
text.insert(tk.END, "希望实时显示b.py print的信息\n")
text.update()
dir_list()