-1
在我的程序完成后,一直在挣扎。我想有人可能会帮忙。没有重复代码的Tkinter GUI
基本上,我的程序要求用户使用4个按钮向4个公司中想要显示信息的用户。
class CompanyAnalysis(tk.Frame):
def displayfunction(controller, j):
return lambda: controller.show_frame(j)
company_choice = ["AnalysisCompany1", "AnalysisCompany2", "AnalysisCompany3", "AnalysisCompany4"]
company_name = ["Company1", "Company2", "Company3", "Company4"]
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
header = tk.Label(self, text="Which company to analyze?")
header.pack(side="top", padx=2, pady=2, fill="x")
for i,j in zip(company_name, company_choice):
button = tk.Button(self, text=i, command=displayfunction(controller,j))
knapp.pack(side="top", padx=2, pady=2, fill="x")
这基本上是我公司选择的类。然而,我的GUI是按照它的方式构建的,我目前有4个用于显示公司信息的框架的IDENTICAL类。他们看起来如下:
class FAnalysEricsson(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
text = tk.Message(self, text=companylist[0].fundamental())
text.pack(side="top", padx=2, pady=2, fill="x")
哪里companylist为对象,在这里我调用该方法的基本返回有关公司的信息列表。我如何设计我的GUI,而不必为每家公司重复我的代码?我想也许是顶层窗口,就像某种功能(而不是显示功能),当我按下按钮打开一个新窗口,显示正确的公司(公司列表的索引)的信息。
请不要犹豫,要求我澄清任何事情,如果没有发布我的完整代码,很难解释。