борется с последними штрихами моей программы. Я решил, что кто-то сможет помочь.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 ИДЕНТИЧНЫХ класса для фреймов, отображающих информацию о компании. Они выглядят следующим образом:
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")
Где компания является списком объектов, где я называю метод фундаментальным, который возвращает информацию о компании. Как мне создать графический интерфейс без повторения кода для каждой компании? Я подумал, может быть, окно верхнего уровня, вроде какой-то функции (вместо функции display), которая, когда я нажимаю кнопку, открывает новое окно, отображающее информацию для правильной компании (индекс списка компаний).
Пожалуйста, не стесняйтесь просить меня прояснить все, что трудно объяснить, не публикуя весь текст моего кода.