Украсете конзолна програма, ASPLinux Club
онлайн сега
Последни записи в блога
Украсете конзолна програма
Тук написах конзолна програма (контролира работата на навиващата се стонка през LPT порта), всичко работи, но бих искал да я украся малко, знаете ли, екранът потиска потребителя, черен е. Какви библиотеки и функции могат да се използват за това в linux? Бих искал многоцветен текст, може би малко графики (начертайте няколко реда на нивото), така че текстът да бъде поставен на правилното място на екрана. Аз съм нов в програмирането под Linux и толкова малко се говори за терминални програми в наши дни. Нещо да напиша в духа на линковете.
Re: украсяване на конзолна програма
ncurses? Текстов интерфейс на цял екран.
Re: украсяване на конзолна програма
Re: украсяване на конзолна програма
Всичко това, разбира се, е страхотно, но отново изсушете мозъците си, научете нещо ново. Не, не си струва. ncurses не е за мен.
Re: украсяване на конзолна програма
Е, тогава има и друг начин. Истинският Unix-way Напишете демон (пренапишете вашата програма), който ще управлява машината от единия край и ще слуша tcp порта или ще виси на именувана тръба в другия край. Frontend в този случай може да бъде всичко - до apache + php
Но ако опитате това, тогава ще попитате отново „И какво казахте за ncurses.“ Ще ви бъде признато. Опитайте ncurses.
Re: украсяване на конзолна програма
Има по-просто решение от ncurses, което е да се използват ANSI ESC последователности. Bash Promt Howto, вижте ANSI Escape Sequences: Цветове и глава за движение на курсора там и вижте Colorful Shells -- Използване на ANSI цветни кодове за C пример.
В Bash Promt Howto можете също да видите операциите за преместванекурсор.
С помощта на ANSI Escape Sequences можете да пишете интерактивни потребителски интерфейси.
А ето и пример за преместване на курсора по X, Y спрямо горния ляв ъгъл, където се намира координатата M0(0,0).
Re: украсяване на конзолна програма
Е, не съм виждал по-просто решение от ncurses след TurboVision на Borland. Между другото, Ncurses използва тези терминални специални последователности. Само той го крие зад логиката на функциите.
Re: украсяване на конзолна програма
Програмирал съм под TurboVision, ncurses, използвайки ANSI ESC последователности. Последните са удобни с това, че ви позволяват бързо да включите примитивните функции на тези ANSI ESC последователности и да реализирате прост потребителски интерфейс . TurboVision -- трябва да се инсталира отделна библиотека. ncurses -- също трябва да се инсталира отделна библиотека. ANSI ESC последователности -- се отпечатват в STDOUT от функцията printf(3), която е част от GNU C библиотеката и не изисква допълнителни библиотеки.
Сега от TurboVision -- предоставя графични обекти като бутони, радио бутони, падащи списъци, области за рисуване. Изглежда, че може да греша относно механизма за обработка на събития. TurboVision -- мина толкова време.
Сега ncurses -- ви позволява да рисувате обекти, но по отношение на функционалността си явно губи от TurboVision, между има много голяма разлика, как да сравним XLib с qt или gtk.
2slavaz: Ако сте изправени пред задачата да напишете прост интерфейс, пишете в ANSI ESC последователности и ако е трудно да изградите потребителски интерфейс с дълбока йерархия от обекти, ще трябва да използвате или Turbo Vision, или библиотеки за X.org (XFREE86) с обектно-ориентиранПриближаване. Но все пак решението зависи от вас какво и как да използвате. Можете да напишете почти всичко, бих ви препоръчал да погледнете как са написани приложенията redhat-config-* и anaconda от redhat, те имат списъци, бутони, превключватели там, базирани на ncurses.
Re: украсяване на конзолна програма
ANSI ESC е това, от което се нуждаете! Благодаря ти. Нека не е твърде сложно, но точно за това. Не искам да отделям много време за интерфейса. Прочетох линка, на английски е, но можеш да го разбереш.