Qualcuno può spiegare come funziona una GUI e quando dovrei iniziare a usarne una? [chiuso]

16

Ho imparato C ++ per circa un mese e, prima di andare oltre, vorrei chiarire questa noiosa domanda che continuo ad avere. So cos'è una GUI, ma non so come funziona, e forse esempi di quelli popolari?

Anche se so che la programmazione da riga di comando è la base fondamentale, penso che sarebbe divertente scherzare con una GUI.

Anche se ho circa 3 milioni di altre domande, le salverò: D

    
posta David 02.08.2011 - 10:02
fonte

5 risposte

28

Sto generalizzando su un paio di librerie GUI, ma a un livello molto alto il concetto più importante che è necessario capire è che una GUI è event driven .

In un'applicazione console l'input dell'utente avviene di solito in determinati punti definiti dall'utente. Tu chiedi al tuo utente, aspetti il suo input, calcoli qualcosa in base a quell'input. Una delle principali differenze è che l'input avviene solo in one , stai leggendo il testo dalla riga di comando ( stdin in C ++).

In un'applicazione GUI in genere hai più luoghi in cui potrebbe verificarsi l'input, ad esempio pulsanti che eseguono azioni o campi di testo diversi. È qui che entrano in gioco gli eventi. Ad esempio, facendo clic su un pulsante si attiva un evento. Questo evento deve essere gestito da un gestore di eventi , che di solito è solo un metodo che accetta un oggetto evento quando un tale evento viene attivato. Come fa il tuo pulsante a sapere del gestore di eventi? Di solito ti iscrivi (o ascolta ad esso).

Ecco un esempio "ispirato al C ++", questo non è un vero codice QT o C ++.

class MyClickHandler : public ClickListener{
   void clickHandler(ClickEvent e){
      showAlertBox("The button "+e.getSource().getName()+" has been clicked"); 
   }
};

Quando crei il pulsante, registri un'istanza della classe MyClickHandler rispetto al pulsante.

...
MyClickHandler handler();
Button b("Save");
b.registerListener(handler);
...

Ora ogni volta che il pulsante b viene cliccato appare una finestra di messaggio che dice "Il pulsante Salva è stato cliccato".

Puoi immaginare che un'applicazione GUI abbia due fasi:

  • Stabilire la GUI: un breve periodo all'avvio, in cui tutti gli oggetti vengono creati e collegati tra loro.
  • Il ciclo di eventi : la tua GUI si trova in un unico ciclo mentre è in attesa di un evento finché non viene attivato un evento.

Questo è un esempio molto semplice, ma ti consiglierei con qualsiasi framework tu ritenga provi a mostrare una finestra di messaggio quando fai clic su un pulsante.

Per il framework, ce ne sono molti là fuori: nel caso del C ++ probabilmente consiglierei Qt.

Un'ultima parola di consiglio: stai lontano dai progettisti della GUI finché non sai veramente cosa sta succedendo in background. Non è difficile scrivere alcuni semplici esempi e comprendere prima il ciclo degli eventi e poi passare a layout più complessi.

    
risposta data 02.08.2011 - 10:48
fonte
7

Ora è il momento migliore per imparare il porgramming della GUI. Come sapete C ++, consiglierei di guardare QT. Ottima documentazione, enorme base di utenti e numerosi esempi / tutorial disponibili per l'apprendimento.

    
risposta data 02.08.2011 - 10:13
fonte
3

Puoi anche iniziare con Microsoft Visual Studio C ++ Express . L'IDE è molto intuitivo e facile da usare (e gratuito!) E sarai in grado di creare le tue prime applicazioni GUI molto rapidamente ... Che ti aiuterà a concentrarti sulla comprensione delle basi di event-driven programming , un approccio diverso che dovrai padroneggiare.

Si può anche iniziare direttamente con la creazione di applicazioni guidate da WPF, ma all'inizio dovrei iniziare con Windows Form, che è una tecnologia in meno da cogliere poiché è solo un C ++ di base con Microsoft Windows Forms API.

    
risposta data 02.08.2011 - 10:36
fonte
0

Forse più adatto a StackOverflow, taggato c ++; ma comunque.

Guarda alcuni di questi su google; Qt, WxWidgets, TheForgers 'WinApi, Fltk ...

Le GUI non sono così difficili da usare, specialmente se conosci già c ++. Vai con WxWidgets Penso; Qt è un po 'troppo complesso per l'apprendimento di un mese. Puoi prendere Wx in un paio d'ore.

    
risposta data 02.08.2011 - 10:15
fonte
-1

Gli utenti non amano le cose complicate. La console è una cosa complicata, ecco perché devi creare applicazioni GUI che siano più amichevoli e facili da capire. Questa è la ragione più ovvia che vedo. Puoi guardare gtk o Qt - quelli due sono i più popolari.

    
risposta data 02.08.2011 - 10:09
fonte

Leggi altre domande sui tag