Как создавать консольные интерфейсы?

Во многих консольных приложениях есть крутые элементы по типу шкалы загрузки, нажимаемой кнопочки и т.д. Нашел библиотеку pyinquirer но нужно что-то более гибкое. Как это все устроенно внутри? Есть какие-нибудь другие либы? Не обязательно на python


Ответы (1 шт):

Автор решения: Danny

Попробуйте npyscreen, информация о npyscreen: https://pypi.org/project/npyscreen/

Установить npyscreen:

pip install npyscreen

Или picotui, информация о picotui: https://pypi.org/project/picotui/

Установить picotui:

pip install picotui

Пример использования npyscreen отсюда https://m.habr.com/ru/post/352904/

#!/usr/bin/env python3
import npyscreen

class App(npyscreen.StandardApp):
    def onStart(self):
        self.addForm("MAIN", MainForm, name="Hello Habr!")

class MainForm(npyscreen.FormBaseNew):
    def create(self):
        # Узнаем используемое формой пространство
        y, x = self.useable_space()
        self.add(npyscreen.TitleDateCombo, name="Date:", max_width=x // 2)
        self.add(npyscreen.TitleMultiSelect, relx=x // 2 + 1, rely=2, value=[1, 2], name="Pick Several", values=["Option1", "Option2", "Option3"], scroll_exit=True)
        # Можно использовать отицательные координаты
        self.add(npyscreen.TitleFilename, name="Filename:", rely=-5)

MyApp = App()
MyApp.run()

Результат

результат работы программы

→ Ссылка