GUI / TUI linux библиотека - PullRequest
       37

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

6 голосов
/ 02 сентября 2008

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

Ответы [ 8 ]

3 голосов
/ 28 апреля 2010

Библиотека, которая обеспечивает независимость 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», чтобы найти запись в блоге Андреаса Ягера на эту тему.

2 голосов
/ 05 октября 2008

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

2 голосов
/ 01 октября 2008

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

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

1 голос
/ 06 октября 2008

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

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

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

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

1 голос
/ 03 сентября 2008

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

0 голосов
/ 05 октября 2008

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

0 голосов
/ 02 сентября 2008

Может быть, tcl / tk даст то, что вы хотите http://www.tcl.tk/

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

http://www2.tcl.tk/2372

...