Python: добавить виджет слайдера в скрипт только для консоли - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь добавить некоторые интерактивные функции в существующий скрипт 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.

Есть ли простая альтернативадля такой простой проблемы? Любые идеи приветствуются.

Большое спасибо!

...