2013-03-25 16 views
7

Voglio solo sapere se Standard C++ consente la programmazione GUI?Grafica usando solo standard C++?

Ci sono 2 aspetti di questo:

  1. Widget per l'interfaccia utente come finestre, di dialogo, pulsanti, ecc
  2. Graphics come disegno cerchio, rettangolo, spline, ecc

ho state usando Qt per la mia UI & non ho visto nessuno fare la GUI solo in C++.

PS: Mi interessa solo il linguaggio C++, so che Java consente la programmazione GUI!

UPDATE: una nuova domanda è stato aggiunto qui: How frameworks like Qt create GUI, if C++ has no functionality for that?

+2

Risposta breve: no. – Morwenn

risposta

5

No, questo non è possibile. C++ funziona su molti dispositivi, alcuni dei quali semplicemente non hanno questa capacità.

Qt può farlo, in genere perché i sistemi operativi su cui viene eseguito offrono tale funzionalità. Di solito è esposto come un insieme di funzioni C, che in pratica significa che sono richiamabili dal codice C++ in Qt. Ciò che il sistema operativo utilizza internamente, chi lo sa. Al giorno d'oggi può persino lasciare un po 'del lavoro alla GPU.

E su alcuni sistemi embedded, Qt ottiene solo un puntatore alla memoria dello schermo e fa tutte le manipolazioni dei pixel. Questa non è una soluzione quando devi condividere lo schermo con più applicazioni, ma per i dispositivi a funzione singola funziona sicuramente.

4

No. Non v'è nulla di GUI in C++ standard.

I quadri utilizzano le strutture del sistema operativo. Standard C++ - no.

1

C++ standard non proibisce la programmazione GUI (IOW, lo consente), ma allo stesso tempo non fornisce alcuna funzionalità di libreria standard per questo. Questo va oltre lo scopo del linguaggio e della sua libreria standard ed è specifico per OS/piattaforma.

L'unica cosa che la grafica che si può fare direttamente in C++ è semplicemente ASCII art. :)

+0

Bene, si * potrebbe * effettivamente disegnare sullo schermo manualmente- vedere http://stackoverflow.com/a/4887470. Non è supportato * direttamente * nello standard e dipende dalle convenzioni OS.Potrebbe sicuramente essere fatto, ma significherebbe creare un'intera libreria grafica (rendering del software) da configurare. A quel punto, si potrebbe anche usare SDL o almeno OpenGL. –

2

Lo consente, nel senso che non limita la capacità di un'implementazione di rendere disponibili le strutture GUI in caso di scelta.

Lo standard non richiede la disponibilità di un ambiente GUI: molti ambienti di runtime delle implementazioni non ne hanno uno disponibile, quindi non esiste un'interfaccia standard obbligatoria.

Non esiste inoltre un'interfaccia GUI opzionale standardizzata.

+1

@Cool_Coder: una nuova domanda dovrebbe essere posta in una nuova domanda; altrimenti invalidi tutte le risposte esistenti. –

+0

bene, farà una nuova domanda in questo momento :) –

+0

aggiunto la domanda qui: http://stackoverflow.com/questions/15611487/how-frameworks-like-qt-create-gui-if-c-has-no- funzionalità-per-che –

3

No, non è incluso. È possibile leggere la spiegazione dal creatore della lingua: http://www.stroustrup.com/bs_faq.html#gui

I framework della GUI utilizzano le funzioni di basso livello fornite dall'API del sistema operativo o dall'API del gestore finestre.