2008-09-02 3 views
5

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

ответ

0

Может Tcl/Tk обеспечит то, что вы хотите http://www.tcl.tk/

Вот страница, на взаимодействие с проклятиями. Существует требование об интеграции с ncurses.

http://www2.tcl.tk/2372

+0

Я знаю, что он работает на графических средах. Не могли бы вы ссылаться на информацию о ее запуске на ncurses? – 2012-02-07 13:58:05

1

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

2

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

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

0

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

2

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

0

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

1

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

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

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

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

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

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

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

Также google для «YaST Independence From YCP», чтобы найти запись в блоге от Андреаса Ягера по этому вопросу.

+0

Обратите внимание, что существует постоянный проект Google SoC, чтобы сделать libyui еще более независимым: http://nbprashanth.wordpress.com/category/gsoc – duncan 2011-09-05 15:54:23

Смежные вопросы