Creare semplice interfaccia grafica per Debian/Ubuntu in c

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
gongciao
Prode Principiante
Messaggi: 2
Iscrizione: mercoledì 1 luglio 2015, 10:54
Sesso: Maschile

Creare semplice interfaccia grafica per Debian/Ubuntu in c

Messaggio da gongciao »

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.
Avatar utente
cortinico
Scoppiettante Seguace
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

Messaggio da cortinico »

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
"Look wide, and even when you think you are looking wide – look wider still!"
http://ncorti.com
Avatar utente
SuperStep
Entusiasta Emergente
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

Messaggio da SuperStep »

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)
Avatar utente
rpadovani
Imperturbabile Insigne
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

Messaggio da rpadovani »

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:

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;
}
Solutions Architect at nextbit | About me
Changing the world bit by bit
Avatar utente
vbextreme
Entusiasta Emergente
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

Messaggio da vbextreme »

@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.
Easy framework per il linguaggio C.
vbextreme hack your life
gongciao
Prode Principiante
Messaggi: 2
Iscrizione: mercoledì 1 luglio 2015, 10:54
Sesso: Maschile

Re: Creare semplice interfaccia grafica per Debian/Ubuntu in

Messaggio da gongciao »

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
Avatar utente
SuperStep
Entusiasta Emergente
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

Messaggio da SuperStep »

@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

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
questo supponendo che tu stai utilizzando System D per la gestione dei processi d'avvio.
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)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 14 ospiti