Creazione Frontend
Moderatore: Staff
Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
-
Szat
- Linux 1.x

- Messaggi: 118
- Iscritto il: ven 5 ago 2005, 0:00
- Slackware: current
- Kernel: linux-2.6.27.7
- Desktop: Kde4.2
- Distribuzione: Kubuntu
- Località: Torino
Creazione Frontend
Ciao a tutti
ho sempre programmato programmi eseguibili da shell. Ora mi piacerebbe imparare le QT4 quindi mi sto studiando il tutorial.
Ho un prrogramma e vorrei sviluppare una piccola GUI però non ho idea di come far comunicare le due applicazioni, quindi in pratica il motore esiste già, devo fare solo la GUI e vorrei che fossero ben staccati (due progetti diversi, il motore deve poter essere sviluppato in modo indipendente). Sono in cerca di consigli/risorse visto che non ho trovato molto su google (nemmeno qui nel forum).
Il tutto in C++ + QT4
Ciao e grazie in anticipo
ho sempre programmato programmi eseguibili da shell. Ora mi piacerebbe imparare le QT4 quindi mi sto studiando il tutorial.
Ho un prrogramma e vorrei sviluppare una piccola GUI però non ho idea di come far comunicare le due applicazioni, quindi in pratica il motore esiste già, devo fare solo la GUI e vorrei che fossero ben staccati (due progetti diversi, il motore deve poter essere sviluppato in modo indipendente). Sono in cerca di consigli/risorse visto che non ho trovato molto su google (nemmeno qui nel forum).
Il tutto in C++ + QT4
Ciao e grazie in anticipo
-
Szat
- Linux 1.x

- Messaggi: 118
- Iscritto il: ven 5 ago 2005, 0:00
- Slackware: current
- Kernel: linux-2.6.27.7
- Desktop: Kde4.2
- Distribuzione: Kubuntu
- Località: Torino
Re: Creazione Frontend
In realtà la condizione C++ è solo provvisoria... Potrei anche decidere di fare in modo diverso. Avete presente maple? Bene il kernel è staccato dalla GUI che è fatta in java...
- mcosta
- Linux 0.x

- Messaggi: 54
- Iscritto il: mar 15 giu 2004, 0:00
- Nome Cognome: Massimo Costa
- Slackware: 13.0
- Kernel: 2.6.29.6
- Desktop: KDE 4.2.4
- Località: Marano (NA)
Re: Creazione Frontend
Per rendere il core e la GUI indipendenti ci sono fondamentalmente due strade:
- Stabilire un canale di comunicazione (SOCKET, SHARED MEMORY, ECC...) e usarlo per far comunicare i due componenti
- Estrarre dal core una libreria linkabile sia dalla GUI sia dal programma a linea di comando
-
Szat
- Linux 1.x

- Messaggi: 118
- Iscritto il: ven 5 ago 2005, 0:00
- Slackware: current
- Kernel: linux-2.6.27.7
- Desktop: Kde4.2
- Distribuzione: Kubuntu
- Località: Torino
Re: Creazione Frontend
Ciao direi che questa è la soluzione che mi piace di più... Hai voglia di fare un piccolo esempio di implementazione?mcosta ha scritto:Per rendere il core e la GUI indipendenti ci sono fondamentalmente due strade:
- Stabilire un canale di comunicazione (SOCKET, SHARED MEMORY, ECC...) e usarlo per far comunicare i due componenti
Grazie per la risposta
- mcosta
- Linux 0.x

- Messaggi: 54
- Iscritto il: mar 15 giu 2004, 0:00
- Nome Cognome: Massimo Costa
- Slackware: 13.0
- Kernel: 2.6.29.6
- Desktop: KDE 4.2.4
- Località: Marano (NA)
Re: Creazione Frontend
Ad esempio (usando SOCKET UDP), potresti avere nel core due thread: uno in ascolto su socket e l'altro in lettura da shell; alla ricezione di un ordine (da socket o shell) questo viene inoltrato verso il gestore degli ordini e processato.Szat ha scritto: Ciao direi che questa è la soluzione che mi piace di più... Hai voglia di fare un piccolo esempio di implementazione?
Grazie per la risposta
In questo modo l'applicazione principale sarebbe indipendente dalla sorgente degli ordini.
La GUI deve a questo punto inviare comandi al core ed eventualmente riceverne risposta tramite socket UDP.
L'utilizzo di SOCKET UDP consente di
- Non preoccuparti di gestire connessioni
- Poter eseguire GUI e core su macchine diverse
Ciao
-
Szat
- Linux 1.x

- Messaggi: 118
- Iscritto il: ven 5 ago 2005, 0:00
- Slackware: current
- Kernel: linux-2.6.27.7
- Desktop: Kde4.2
- Distribuzione: Kubuntu
- Località: Torino
Re: Creazione Frontend
Pensavo fosse più semplice... CI penserò se tenere la GUI staccata dal kernel...
Dovrei spendere del tempo per pensarci... Ma alla fine conviene davvero oppure no?
Dovrei spendere del tempo per pensarci... Ma alla fine conviene davvero oppure no?
-
Luke
- Linux 0.x

- Messaggi: 16
- Iscritto il: mar 21 mar 2006, 14:26
- Nome Cognome: Luca
- Slackware: 13.37
- Desktop: Xfce
- Località: Pordenone
Re: Creazione Frontend
mcosta dice bene ma mi permetto di aggiungere un'alternativa: in certi casi la GUI si occupa solo di raccogliere le preferenze dell'utente, poi apre una shell ed esegue il programma (o i programmi) da linea di comando con le opzioni scelte tramite la GUI. Non è l'approccio ideale per tutti i casi, ma se il programma a linea di comando non è interattivo forse è la soluzione migliore. Per esempio è l'approccio di k3b che alla fine lancia mkisofs, cdrecord, growisofs,ecc con i parametri del caso.
Ciao
Luke
Ciao
Luke
- Blizzard
- Master

- Messaggi: 1509
- Iscritto il: mar 2 gen 2007, 22:53
- Nome Cognome: Giovanni Santostefano
- Slackware: 12.2
- Kernel: 2.6.27.7-smp
- Desktop: Fluxbox
- Contatta:
Re: Creazione Frontend
Per semplicità di esempio puoi dare un'occhiata a KSlacky InfoPKG.
È un software che ho sviluppato in questa community con qt4 ed utilizza l'ultimo approccio descritto.
Una manciata di righe di codice molto semplici. Possono essere un discreto esempio.
Trovi la discussione in questo forum o il sito su google.
Gio
In KSIP utilizzo l'approccio di aprire un terminale. Questo perchè tutte le operazioni vanno a seguito di un /bin/su. In alternativa si può fare la fork di un nuovo processo e creare una pipe per mostrare l'output del processo spawned nell'interfaccia grafica. Ti viene qualcosa alla K3B
È un software che ho sviluppato in questa community con qt4 ed utilizza l'ultimo approccio descritto.
Una manciata di righe di codice molto semplici. Possono essere un discreto esempio.
Trovi la discussione in questo forum o il sito su google.
Gio
In KSIP utilizzo l'approccio di aprire un terminale. Questo perchè tutte le operazioni vanno a seguito di un /bin/su. In alternativa si può fare la fork di un nuovo processo e creare una pipe per mostrare l'output del processo spawned nell'interfaccia grafica. Ti viene qualcosa alla K3B
- lennynero
- Linux 3.x

- Messaggi: 641
- Iscritto il: lun 3 mag 2004, 0:00
- Nome Cognome: Luigi Picaro
- Slackware: current-x64
- Kernel: 6.13.1
- Desktop: Xfce-4.20
- Località: Salerno
Re: Creazione Frontend
Una cosa che mi chiedevo io è come si può creare una comunicazione, magari mediante socket, core<>GUI asicrona. Mi spiego meglio: aMuleGUI connessa ad amuled mostra tutte le info in tempo (quasi)reale in qualunque momento la si utilizza...come fa a non rispettare un protocollo di handshaking rigido e mostrare sempre le info aggiornate? c'è un thread che all'occorrenza serve quella GUI fornendovi tutti i dati? o usa la memoria condivisa? Inoltre si possono linkare diverse GUI contmporaneamente al core..., questo significa che il thread si moltiplica?
Grazie in anticipo per eventuali delucidazioni.
Grazie in anticipo per eventuali delucidazioni.
-
Szat
- Linux 1.x

- Messaggi: 118
- Iscritto il: ven 5 ago 2005, 0:00
- Slackware: current
- Kernel: linux-2.6.27.7
- Desktop: Kde4.2
- Distribuzione: Kubuntu
- Località: Torino
Re: Creazione Frontend
Ok ho già scaricato il sorgente. GrazieBlizzard ha scritto:Per semplicità di esempio puoi dare un'occhiata a KSlacky InfoPKG.
È un software che ho sviluppato in questa community con qt4 ed utilizza l'ultimo approccio descritto.
Una manciata di righe di codice molto semplici. Possono essere un discreto esempio.
Re: Creazione Frontend
Magari non è di diretto interesse,ma ti consiglio di spulciarti questo thread su iclc++lennynero ha scritto:Una cosa che mi chiedevo io è come si può creare una comunicazione, magari mediante socket, core<>GUI asicrona.