gtkmm
Interfacce C++ per GTK e GNOME
Interfacce C++ per GTK e GNOME
1. Il posto di gtkmm nel mondo |
|
|
Che cos'è GTK? |
|
|
GTK è il toolkit di widget GUI, scritto in C, che funge da fondamento per il progetto GNOME e per molte applicazioni stand-alone. GTK è la base su cui è costruito gtkmm. Consultare https://www.gtk.org. |
|
|
Perché si chiama gtkmm? |
|
|
gtkmm era originariamente chiamato gtk-- perché GTK si chiamava originariamente GTK+ e aveva un + nel nome. Tuttavia, poiché -- non è facilmente indicizzabile dai motori di ricerca, il pacchetto ha assunto generalmente il nome gtkmm, e questo è il nome che abbiamo mantenuto. |
|
|
Perché usare gtkmm invece di GTK? |
|
|
|
|
Perché usare libsigc++? Perché non usare le funzioni di segnale di GTK? |
|
|
|
|
Perché GTK e GNOME stessi non sono scritti in C++? |
|
|
|
|
Perché non usate Qt, se vi piace così tanto il C++? |
|
|
Gli sviluppatori di gtkmm tendono a preferire gtkmm rispetto a Qt perché gtkmm è più conforme al C++. Qt ha origine in un'epoca in cui il C++ e la libreria standard non erano standardizzati o ben supportati dai compilatori. Pertanto, duplica molte cose che ora si trovano nella libreria standard, come i contenitori e le informazioni sui tipi. Un aspetto più significativo: hanno modificato il linguaggio C++ per fornire i segnali, cosicché le classi Qt non possono essere usate facilmente con classi non di Qt. gtkmm è stato in grado di usare il C++ standard per fornire i segnali senza cambiare il linguaggio C++. Inoltre, gtkmm e gli altri moduli *mm permettono di creare software che lavora più a stretto contatto con l'ambiente desktop GNOME. |
|
2. Quanto è valido gtkmm? |
|
|
Su quali sistemi gira? |
|
|
gtkmm dovrebbe girare su qualsiasi sistema di tipo UNIX con i compilatori e le librerie corretti installati. Il compilatore GNU C++ (g++, parte di gcc) insieme al toolset GNU (come quello che si trova sui sistemi Linux e *BSD) costituiscono il suo ambiente di compilazione predefinito. Può anche essere compilato e usato su Windows con gli strumenti di compilazione mingw o MSVC. |
|
|
Quanto è completo? |
|
|
gtkmm cerca di offrire tutte le funzionalità offerte da GTK. Ciò significa che con gtkmm dovrebbe essere possibile fare tutto ciò che è supportato da GTK, e farlo più facilmente. Se qualcosa non è coperto, vorremmo saperlo. GLib contiene classi con funzionalità simili alle classi C++ standard, ad esempio |
|
|
gtkmm usa i contenitori C++ standard come |
|
|
Sì, crediamo nel riutilizzo del codice C++ standard ovunque possibile. Questo potrebbe non essere ovvio all'inizio, perché gtkmm ha |
|
|
Come si confronta gtkmm con Qt? |
|
|
|
3. Ulteriori informazioni |
|
|
Dove si può discutere di gtkmm? |
|
|
Consultare la pagina Discussione. |
|
|
Quale documentazione esiste per gtkmm? |
|
|
Consultare la pagina Documentazione. |
|
|
Dove posso trovare del codice d'esempio? |
|
|
Consultare la directory degli esempi nel modulo gtkmm-documentation. La maggior parte di essi appare nel libro di gtkmm. |
|
4. Usare gtkmm |
|
|
Quali argomenti del compilatore si dovrebbero usare per compilare un programma gtkmm? |
|
|
Consultare la documentazione di riferimento. |
|
|
Come ottenere l'oggetto GTK da un oggetto gtkmm? |
|
|
Se si ha bisogno di alcune funzionalità GTK non supportate tramite gtkmm, è possibile chiamare il metodo |
|
|
Come avvolgere (wrap) un widget GTK in un'istanza gtkmm? |
|
|
|
|
|
Posso usare le eccezioni C++ con gtkmm? |
|
|
Sì, ma ci sono delle restrizioni. Poiché il C semplice non sa cosa sia un'eccezione C++, si possono usare le eccezioni nel proprio codice gtkmm a patto che non ci siano funzioni C nello stack delle chiamate tra chi lancia l'eccezione (thrower) e chi la intercetta (catcher). Ciò significa che bisogna catturare l'eccezione localmente. Si verrà avvertiti sulle eccezioni non catturate durante l'esecuzione, e per tali eccezioni si potrà specificare un gestore diverso. Alcuni metodi di gtkmm usano le eccezioni per segnalare errori. I tipi di eccezione che potrebbero essere lanciati sono elencati nella documentazione di riferimento di tali metodi. |
|
|
Come usare Cambalache o Glade con gtkmm? |
|
|
Consultare il capitolo Gtk::Builder nel libro di gtkmm. Cambalache sostituisce l'applicazione Glade. Glade non può essere usata con GTK4/gtkmm4. |
|
|
Cosa fa |
|
|
Significa che «il widget contenitore eliminerà questo widget figlio». Usarlo se non ci si vuole preoccupare di quando eliminare i widget allocati dinamicamente. |
|
|
Come imparare a disporre i widget? Le opzioni di impacchettamento (packing) sono complicate. |
|
|
Cambalache è un ottimo modo per vedere cosa si può fare con i widget GTK e GNOME. Usare Cambalache per esplorare la scelta dei widget e per vedere come possono essere messi insieme. |
|
|
Sono abituato a MFC (Microsoft Foundation Class Library). Dove sono il Documento e la Vista? |
|
|
Document/View (che è una versione del pattern di progettazione software Model–View–Controller (MVC)) non è supportato direttamente da GTK. Tuttavia, le classi |
|
|
Come si caricano le immagini da usare con gtkmm? |
|
|
Usare |
|
|
gtkmm è thread-safe? |
|
|
Né GTK né gtkmm sono thread-safe. Tutto il codice GUI deve essere eseguito nello stesso thread. Se il proprio programma potrebbe trarre beneficio dall'uso di più thread, consultare il capitolo Programmi multi-thread nel libro di gtkmm. |
|