Jak stworzyć old-schoolowe GUI (takie jak debian / arch installer)


13

Ostatnio robiłem wiele instalacji i tam, gdzie to możliwe, zwykle wybieram instalację tekstową z menu GRUB Live CD. Większość instalatorów wygląda następująco:

wprowadź opis zdjęcia tutaj

Zawsze uważałem, że te GUI (jeśli można je tak nazwać) były naprawdę niesamowite i lekkie. Ponieważ wiele aplikacji / dystrybucji korzysta z nich, musi to być biblioteka współdzielona czy coś w porządku? Czy istnieje sposób na zrobienie takich rzeczy?


Należy zauważyć, że większość sysinstallerów dla systemu Linux i bsd ma okropną prezentację interfejsu użytkownika, używając przekleństw dotyczących przycisków OK i Cancel: rzadko kiedy jest jasne, kiedy użytkownik je zaznaczył. Podczas wdrażania z przekleństwami najlepiej nie używać tych instalatorów jako przykładu projektowego; wróć do przeglądu tych starych programów DOS, takich jak Lotus 123, aby dowiedzieć się, jak dobre graficzne interfejsy graficzne ANSI powinny działać pod kątem interfejsu użytkownika. To coś w stylu: [Ok] jest lekko zabarwiony, ale nie podświetlony, dopóki nie zostanie wybrany przez użytkownika.
Jonathan Cline IEEE

Odpowiedzi:



14

Nie wiem o Archu i Debianie, ale często te GUI są tworzone dialog(1), co wymaga wielu argumentów wiersza poleceń, a następnie wyświetla okno dialogowe ncurses. Na przykład menuconfig jądra Linux wygląda następująco:

Zrzut ekranu menuconfig

Przykład dialogużycia to:

$ dialog --title "Hello" --infobox "Hello there Unix and Linux Stack Exchange" 20 100

Co skutkuje w:

Zrzut ekranu okna dialogowego (1)


To jest niesamowite, więc okno dialogowe używa ncurses do rysowania na terminalu? Nie może być łatwiejsze niż to. Dzięki
n0pe

8

Na wyższym poziomie, te, które wyglądają dokładnie tak, zazwyczaj używają czegoś takiego jak traszka / whiptail lub dialog . Ten konkretny wygląda jak traszka / whiptail, ponieważ okno dialogowe ma tendencję do rysowania ramki wokół kontrolek takich jak ten listbox. W innym przykładzie konfiguracja jądra Linuksa używa przyciętej niestandardowej wersji okna dialogowego (bez dodatkowych funkcji, których nie używa, i wyobrażam sobie, że pole wyboru tak / nie / moduł jest funkcją niestandardową)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.