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