Creare semplice interfaccia grafica per Debian/Ubuntu in c
Creare semplice interfaccia grafica per Debian/Ubuntu in c
Salve a tutti, sono nuovo del forum e di recente ho avuto la necessità di creare un interfaccia "grafica" (in realtà deve solo stampare delle stringhe sullo stato del server all'avvio, tipo: IP, stato e robe simili, e nascondere il login) per Debian e/o Ubuntu server in c/c++; avevo pensato di creare un demone che avviasse un'applicazione in foreground, ma non ci sono riuscito.
Ho anche provato a cercare su internet, ma non ho trovato nulla .
Spero mi possiate aiutare, grazie in anticipo.
Ho anche provato a cercare su internet, ma non ho trovato nulla .
Spero mi possiate aiutare, grazie in anticipo.
- cortinico
- Scoppiettante Seguace
- Messaggi: 477
- Iscrizione: venerdì 15 maggio 2015, 16:49
- Desktop: Unity
- Distribuzione: Ubuntu 15.04 amd64
- Sesso: Maschile
- Località: Pisa
- Contatti:
Re: Creare semplice interfaccia grafica per Debian/Ubuntu in
Ciao,
Puoi provare con le librerie GTK+,
ti linko un paio di guide in italiano
http://www.mathematik.uni-ulm.de/help/g ... _it-1.html
https://due-gtk.googlecode.com/svn/trun ... ivaGtk.pdf
Sfortunatamente il connubio c+gtk non è proprio il più semplice da realizzare per chi è alle prime armi, se lo conosci ti consiglierei di provare Python+GTK, che ha un approccio molto più semplice
Puoi provare con le librerie GTK+,
ti linko un paio di guide in italiano
http://www.mathematik.uni-ulm.de/help/g ... _it-1.html
https://due-gtk.googlecode.com/svn/trun ... ivaGtk.pdf
Sfortunatamente il connubio c+gtk non è proprio il più semplice da realizzare per chi è alle prime armi, se lo conosci ti consiglierei di provare Python+GTK, che ha un approccio molto più semplice
"Look wide, and even when you think you are looking wide – look wider still!"
http://ncorti.com
http://ncorti.com
- SuperStep
- Entusiasta Emergente
- Messaggi: 2037
- Iscrizione: lunedì 19 dicembre 2011, 16:26
- Desktop: Unity
- Distribuzione: Ubuntu 16.04 LTS x86_64
- Sesso: Maschile
- Località: Somma Vesuviana (NA)
Re: Creare semplice interfaccia grafica per Debian/Ubuntu in
io per la progettazione di interfaccie grafiche opterei per le librerie Qt. Secondo me oltre che "estremamente semplici", sono anche le piu' versatili e le migliori. Considerando che si puo' utilizzare webkit per il motore di rendering.
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
- rpadovani
- Imperturbabile Insigne
- Messaggi: 3434
- Iscrizione: lunedì 8 dicembre 2008, 19:49
- Desktop: GNOME Shell
- Distribuzione: Ubuntu 18.04 x86_64
- Sesso: Maschile
- Località: Munich, Germany
- Contatti:
Re: Creare semplice interfaccia grafica per Debian/Ubuntu in
Anche io suggerisco Qt anche se bindano decisamente meglio con il C++ che con il C.
Comunque qual'è il problema di lanciare un demone? Basta fare un fork() nel main:
Comunque qual'è il problema di lanciare un demone? Basta fare un fork() nel main:
Codice: Seleziona tutto
int main()
{
int pid;
pid = fork();
if (pid == -1)
printf("Fork fallito");
else if (pid == 0)
// Questo è il demone in background, da qui lanci thread o whatever
return 0;
}
- vbextreme
- Entusiasta Emergente
- Messaggi: 1214
- Iscrizione: domenica 12 gennaio 2014, 14:06
- Desktop: lxde
- Distribuzione: xubuntu 14.10
Re: Creare semplice interfaccia grafica per Debian/Ubuntu in
@rpadovani così non crei un demone! crei un semplice processo copia del padre.
per creare un demone su linux esiste una scorciatoia, basta scrivere
daemon()
Altrimenti dopo la fork() va fatto puntare gli STD verso null, cambiati gli UID, i path e altre cose simili.
QT non funziona col linguaggio C pertanto GTK rimane una delle poche opzioni valide.
per creare un demone su linux esiste una scorciatoia, basta scrivere
daemon()
Altrimenti dopo la fork() va fatto puntare gli STD verso null, cambiati gli UID, i path e altre cose simili.
QT non funziona col linguaggio C pertanto GTK rimane una delle poche opzioni valide.
Re: Creare semplice interfaccia grafica per Debian/Ubuntu in
Intanto grazie a tutti per le vostre risposte, ma credo di essere stato frainteso (in effetti mi sono espresso male);
il mio obbiettivo è quello di applicare un interfaccia grafica sviluppata da me ad ubuntu server o Debian , gli unici obbiettivi dell'interfaccia che ho in mente sono:
1) nascondere il login;
2) stampare delle stringhe contenenti informazioni sul server (tipo IP, Stato di alcuni servizi, ecc.).
Spero di essere stato più chiaro e che mi possiate aiutare
il mio obbiettivo è quello di applicare un interfaccia grafica sviluppata da me ad ubuntu server o Debian , gli unici obbiettivi dell'interfaccia che ho in mente sono:
1) nascondere il login;
2) stampare delle stringhe contenenti informazioni sul server (tipo IP, Stato di alcuni servizi, ecc.).
Spero di essere stato più chiaro e che mi possiate aiutare
- SuperStep
- Entusiasta Emergente
- Messaggi: 2037
- Iscrizione: lunedì 19 dicembre 2011, 16:26
- Desktop: Unity
- Distribuzione: Ubuntu 16.04 LTS x86_64
- Sesso: Maschile
- Località: Somma Vesuviana (NA)
Re: Creare semplice interfaccia grafica per Debian/Ubuntu in
@gongciao,
quando fai riferimento al punto 1 (nascondere il login) ovviamente quello che intendiamo noi e':
rimuovere il programma manager del desktop (gdm, lightdm, kdm, ...) che si occupa di fare la login e poi mostrare il desktop.
e sostituire l'avvio di questo servizio con un tuo servizio (che da adesso chiameremo gongciaodm per ipotesi).
In genere, quello che devi fare e' sviluppare il tuo programma che funziona a pieno schermo, una volta ultimato (usanto le gtk, le qt, quello che vuoi, in qualsiasi linguaggio tu voglia) rimuovere dagli script System V quello dell'interfaccia grafica (che nelle versioni server in genere manca) e piazzare il tuo script sotto il run-level di default della macchina (che cambia se non erro fra ubuntu e debian, quindi e meglio se crei due pacchetti di installazione).
il servizio lo devi far girare con x11, quindi, nel tuo runscript scriverai una cosa del genere
poi aggiungi il servizio tramite update-rc.d
per spiegazioni migliori di ogni aspetto vedi:
questo supponendo che tu stai utilizzando System D per la gestione dei processi d'avvio.
quando fai riferimento al punto 1 (nascondere il login) ovviamente quello che intendiamo noi e':
rimuovere il programma manager del desktop (gdm, lightdm, kdm, ...) che si occupa di fare la login e poi mostrare il desktop.
e sostituire l'avvio di questo servizio con un tuo servizio (che da adesso chiameremo gongciaodm per ipotesi).
In genere, quello che devi fare e' sviluppare il tuo programma che funziona a pieno schermo, una volta ultimato (usanto le gtk, le qt, quello che vuoi, in qualsiasi linguaggio tu voglia) rimuovere dagli script System V quello dell'interfaccia grafica (che nelle versioni server in genere manca) e piazzare il tuo script sotto il run-level di default della macchina (che cambia se non erro fra ubuntu e debian, quindi e meglio se crei due pacchetti di installazione).
il servizio lo devi far girare con x11, quindi, nel tuo runscript scriverai una cosa del genere
Codice: Seleziona tutto
... skeleton del servizio ...
start)
/usr/bin/xinit /bin/gongciaodm (eventuali parametri se li accetta)
stop)
...
restart)
...
... restante script ...
poi aggiungi il servizio tramite update-rc.d
per spiegazioni migliori di ogni aspetto vedi:
Codice: Seleziona tutto
man xinit
man service
man update-rc.d
man invoke-rc.d
man init
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 14 ospiti