我在通过第二个文件实现 GUI 界面时遇到问题,该文件仅包含要读取的文件、制作的图和一些要基于该文件评估的新功能。
我正在尝试使用 Tkinter 创建一个 GUI 应用程序。我的做法如下。我有一个后台脚本(比如 Background.py),它有两个功能。函数 X 加载一个数据文件,进行一些计算并输出一个图形。我想触发它的方式是通过另一个文件(GUI.py)中的GUI脚本打开一个带有按钮的面板,当我单击该按钮时,应该评估文件Background.py中的函数X并应该显示一个绘图. 一旦我检查了绘图,我可以点击另一个按钮来关闭绘图并终止函数 X。现在我可以选择点击另一个按钮来触发文件 Background.py 中的函数 Y。这些按钮应该允许我输入三个值,这应该是文件 Background.py 中函数 Y 的输入。一旦我按下这个按钮,它应该触发函数 Y 并执行它要求它执行的操作。现在最后,之后我可以点击按钮关闭 gui。
我怎样才能做到这一点?。一般粗略的想法会有所帮助。
我已经尽可能多地举了一个例子:(至少是代码的骨架)我有一个背景文件说(Background.py)和gui文件(说GUI.py)
背景.py
import numpy
import matplotlib.pyplot as plt
import pandas
def progX():
df = pd.read (myfile)
##df.stats # doing something and generating a plot from the file
plt.boxplot(df['col'])
plt.show()
def progY(y1, y2,y3):
## get the y1, y2, y3 from the GUI interface which the user has entered
#run a code... and generate an output file
图形用户界面.py
import Background as bg
from tkinter import *
from tkinter.ttk import *
class GUI ():
def create widgets(self):
#....
def create_panel2(self):
#create buttons
panel1 = ...
btn1 = Button(panel1, text="yyyyy", command=bg.progA)
btn1.pack()
def create_panel2(self):
#create buttons
panel2 = ...
btn2 = Button(panel1, text="yyyyy", command=bg.progB)
btn2.pack()
All_Entries = []
window = Tk()
D=GUI(window)
window.mainloop()
runprogram1 = bg.progX()
runprogram2 = bg.probY(x, y, z)
我现在的问题是,以上是否有意义?如何从 GUI 调用后台函数?语句 runprogram1 & runprogram2 绝对不正确,我该如何实现。另外,一旦我关闭了程序 X 的输出,我将如何确保在后台调用程序 Y?
我想这些问题是有道理的。我是 GUI 新手,很难解决这个问题,我需要这样做。任何帮助将不胜感激。