Я пытаюсь добавить некоторые интерактивные функции в существующий скрипт Python. Скрипт представляет собой простой P-контроллер, который вычисляет выходные данные из входных данных и нуждается в двух различных параметрах, которые хранятся в переменных экземпляра.
class PControl:
def __init__(self, P=1, SET=0):
self.p = P
self.setpoint = SET
def calculate(self, input):
return (input-self.setpoint)*self.p
def changeP(self, newP):
self.p= newP
def changeSetpoint(self, newSet):
self.setpoint = newSet
Функция расчета регулярно вызывается моим основным приложением, и все работает нормально. (но без графического интерфейса, и так должно быть в обычном приложении)
Для интерактивной настройки параметров я хотел бы добавить графический интерфейс с двумя ползунками или регуляторами, которые связаны с changeP()
соответственно changeSetpoint()
в качестве обратных вызовов.
Я бы хотел настроить эти параметры в интерактивном режиме во время тестирования. Позже будет нормально больше не использовать графический интерфейс и просто запустить скрипт с параметрами инициализации.
Как это сделать, не превращая все приложение в приложение с графическим интерфейсом?
Есть ли способ просто открыть окно с двумя ползунками и привязанными к ним обратными вызовами? (Я думаю о чем-то похожем на интерактивное окно matplotlib)
Я проделал целый день переделок (каламбур) с tkinter и попытался запустить его tk.Tk (). Mainloop () в другомнить, но мне не повезло, так как я не мог передавать сообщения назад и вперед между этими потоками, и это становилось очень неприятным, когда я пытался использовать два экземпляра моего PControl.
Есть ли простая альтернативадля такой простой проблемы? Любые идеи приветствуются.
Большое спасибо!