Помогите внедрить интерфейс Tkinter в основную программу
Если кратко: есть main.py, в котором есть основной класс моей программы MainProgramm(), в котором выполняются основные действия моей программы. В этом же классе происходит вызов функций из другого скрипта - Service.py - из класса Service().
Здесь я привожу упрощенный пример программы (это пример, чтобы только показать структуру)
UPD: сократила код, как могла
----main.py----
import Service
class MainProgramm():
service=Service.Service()
print("Добро пожаловать в программу!!!") #Заменить на вывод в текстбокс
a = 1
b = 2
c =service.Plus(a, b)
d = service.ChoisNumber(a, b)
----Service.py----
class Service():
def __init__(self):
pass
def Plus(self,p1,p2):
result = int(p1)+int(p2)
return result
def ChoisNumber(self,p1,p2):
self.list = []
self.list.append(p1)
self.list.append(p2)
print("Какое число выберете?\n") #Заменить на вывод в текстбокс
while True:
#Ожидание программы, пока пользователь не нажмёт кнопку "отправить"
answer = input() #Заменить получением из entry
if int(answer) in self.list:
print(f"Вы выбрали {answer}!!!") #Заменить на вывод в текстбокс
new_choise = answer
break
else:
print("Выберите из списка!!!\n") #Заменить на вывод в текстбокс
return new_choise
Планировала сделать похожее с интерфейсом - прописать код интерфейса в отдельном скрипте App.py. Я прописала интерфейс. Но вот проблема - я не понимаю, как связать скрипт с интерфейсом со скриптами программы main.py и Service.py.
---App.py----
class Application():
def __init__(self):
self.root = ctk.CTk()
self.root.geometry("750x450")
self.root.minsize(750,450)
self.txt_box = ctk.CTkTextbox(self.root, activate_scrollbars = True,
corner_radius = 15,
font = ('Courier New', 16, 'normal'))
self.txt_box.pack(side="top",fill="both",expand=1)
self.txt_box.configure(wrap = "none", state = "disabled")
# ENTRY - поле ввода и кнопка отправки
#По умолчанию кнопка и строка ввода НЕ АКТИВНЫ.
# Они активируются ТОЛЬКО тогда, когда программа ожидает ответ от пользователя (ему нужно сделать выбор)
self.entry = ctk.CTkEntry(master=self.root, placeholder_text="Ввод", state = ctk.DISABLED)
self.entry.pack(side="left", fill="x", expand=1)
self.button_entry = ctk.CTkButton(master=self.root, text="Enter", state = ctk.DISABLED)
self.button_entry.pack(padx=20, pady=10)
# BUTTON - кнопки запуска, остановки основной программы
self.button_start = ctk.CTkButton(master=self.root, text="Начать", state = ctk.NORMAL)
self.button_start.pack(padx=20, pady=10
def PrintOnTextBox(self, prt_text):
self.txt_box.configure(state="normal")
self.txt_box.insert(index="end", text=prt_text + '\n')
self.txt_box.configure(state="disabled")
Уже много какой литературы перечитала, но всё равно не понимаю как "внедрить" интерфейс в уже работающие скрипты. Переписывать код и начать создавать программу с нуля (чтобы сначала создать интерфейс, а потом прописать функционал) нет времени - скоро сдавать проект. Подскажите, пожалуйста, есть ли способ использования интерфейса из отдельного скрипта App.py в программе? И если есть способ, пожалуйста, подскажите как конкретно прописать всё это дело (мне всё равно это нужно будет прописывать в основную программу - намного объёмнее и с большими нюансами, чем в примере, приведённом выше)