Библиотека GUI / TUI linux

Есть ли какая-либо библиотека пользовательского интерфейса, которая может создавать как текстовый пользовательский интерфейс (ncurses), так и графический пользовательский интерфейс (GTK? QT?) Из одного источника? Я знаю, что debconf можно использовать с различными интерфейсами, я хотел бы создать что-то похожее, но программируемое.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
0
5 454
8

Ответы 8

Возможно, tcl / tk предоставит то, что вы хотите http://www.tcl.tk/

Вот страница о взаимодействии с проклятиями. Там есть претензия на интеграцию с ncurses.

http://www2.tcl.tk/2372

Я знаю, что он работает в графическом окружении. Не могли бы вы дать ссылку на информацию о его запуске на ncurses?

Grzegorz Wierzowiecki 07.02.2012 17:58

Есть Проклятый GTK, но он кажется немного устаревшим. Я нашел несколько ссылок на порт Qt на ncurses под названием Qt Console, но, похоже, он исчез.

вы можете написать свою программу для использования ncurses, а затем использовать PDCurses, чтобы преобразовать ее в приложение X11 - как рекламируется в файле readme.

Я знаю это, потому что использовал его в качестве портативных проклятий, хотя я никогда не тестировал его возможности X11.

Не совсем библиотека, но вы могли бы подумать о написании веб-приложения, которое хорошо деградирует до Lynx.

Хорошее мышление нестандартно

Waslap 13.04.2019 21:04

Ребята из GoboLinux создали свой собственный набор инструментов для Python под названием AbsTK, они используют его для своего установщика, который действительно работает очень хорошо. Я никогда не использовал этот инструментарий, но приложения, созданные с его помощью, кажутся надежными.

Я думаю, что для настройки ядра Linux при компиляции используется dialog / cdialog / xdialog. Но прошло много времени с тех пор, как я скомпилировал ядро, поэтому моя память может быть отключена. Самая многообещающая ссылка, которую я могу найти, - это Xdialog.

Используя библиотеку, ориентированную как на текстовый режим, так и на среду графического интерфейса, вы сильно рискуете застрять в худшем из обоих миров.

Вам будет лучше структурировать свой код с помощью Шаблон MVC и предоставлять отдельные представления и контроллеры для каждой целевой платформы. Передача всей логики в классы модели дает несколько других преимуществ:

  • Код будет легче тестировать, потому что вы вынуждены не допускать, чтобы пользовательский интерфейс попадал в фактическую логику домена.
  • Ваша программа может иметь пользовательские интерфейсы, которые имеют очень мало общего, например веб-интерфейс или пользовательский интерфейс, управляемый речью.
  • Вы можете легко запустить программу вообще без пользовательского интерфейса (например, написать сценарий), напрямую обращаясь к классам модели так же, как это делают классы контроллеров.

Библиотека, которая обеспечивает независимость YaST для выполнения ncurses, gtk и qt с одной базой кода, предоставляет то, что вы ищете, и не привязана к самому YaST.

На самом деле libyui требует только стандартной библиотеки C++ и phtreads (IIRC). Плагины пользовательского интерфейса, конечно же, требуют соответствующих библиотек (Qt, ncurses). YaST использует libyui через набор привязок YCP, которые экспортируют YCP-подобный API поверх libyui.

Библиотека немного низкоуровневая (на один уровень ниже цикла событий), мой коллега Клаус Кампф некоторое время назад писал об ее использовании в его блог, включая привязку к языкам сценариев с помощью swig.

Единственная часть, которая специфична для SUSE, - это упаковка, поэтому вам придется упаковать ее самостоятельно. Stackoverflow не позволял мне делать ссылку более одного раза. Код библиотеки связан с блогом Клауса. Замените libyui на «qt» и «ncurses» на код плагина.

Также погуглите "Независимость YaST от YCP", чтобы найти запись в блоге Андреаса Ягера на эту тему.

Обратите внимание, что в настоящее время идет проект Google SoC, чтобы сделать libyui еще более независимой: nbprashanth.wordpress.com/category/gsoc

duncan 05.09.2011 19:54

Другие вопросы по теме