PDA

Visualizza la versione completa : [?] Tutti i modi di scrivere GUI


gemini_76_it
19-02-2004, 23:53
Per costruire programmi GUI, ad interfaccia grafica a finestre, ci sono molti pacchetti disponibili, alcuni disponibili addirittura per diversi linguaggi di programmazione oltre che per diversi OS.

Partendo da librerie per GUI in C/C++, recepite anche in altri linguaggi, in ambiente windows, potreste documentarmi sulla COMPLETEZZA, POTENZA, DIFFICOLTA' D'INSTALLAZIONE, DIFFICOLTA' D'USO e D'APPRENDIMENTO, DIPENDENZA da altri pacchetti, DOCS possibilmente in italiano, TIPO DI LICENZA e quindi (im)possibilità di distribuire i propri software sviluppati nella maniera in cui si desidera (freeware, commerciali...)???

API di win32; GTK+/GTKMM; WxWindows; FLTK; QT; MFC.

Ce ne sono altre di importanti ?

Magari potreste anche esprimere la vostra preferenza personale, per gusto estetico o altro..

Johnny_Depp
20-02-2004, 00:58
non sono molto ferrato in grafica 2D/3D...
ma aggiungerei alla lista anche: OpenGL, DirectX e Allegro.

Al momento sto sviluppando alcuni "giochini puramente accademici" in C/C++
e mi appoggio esclusivamente alle librerie grafiche GDI di windows... (WIN32)
integrate ad un buon ambiente di sviluppo freeware quale il Dev C++.

...Sto sviluppando una roba del genere:

http://net.supereva.it/area80/marsattack.gif

gemini_76_it
20-02-2004, 09:15
Grazie Johnny, anche per aver editato il titolo.
Ah, io non avevo preso in considerazione la parte grafica2d/3d...La creazione di giochini mi interessa... Ma forse ora è troppo presto.
Cmq,tu sviluppi in DEV C++ con le librerie già in esso integrate? Senza bisogno quindi di scaricarsi a parte dell'altro?
Hai una piccola porzione di codice da potermi postare per farmi un idea? gemini_76_it@yahoo.it

Cmq, più specificamente intendevo librerie per la scrittura di INTERFACCE utente, form, bottoni, menu a tendina, ecc..

anx721
20-02-2004, 15:21
Ciao, anche io sto leggiuchiando un po sulle librerie grafiche a disposizione. Finora ho usato solo java, che però ha il limite di non produrre programmi eseguibili, e che necessitano di essere interpretati dalla macchina virtuale java. Tra le altre sto leggendo un po le wxWindws che sembrano essere parecchio diffuse e sono completamente free, e le Fox, un po meno diffuse, ma stanno riscuotendo un discreto successo ( http://www.fox-toolkit.org/ ).
Le wxWindows le uso con l'ambiene di sviluppo per Windows MinGWDevelopper Studio( http://www.parinya.ca/ ) (anche questo free), che puo essere scaricato nella versione con le wxWindows già istallate (MinGWStudioFullSetupPlus-2.05.exe di 62 MB circa)
e quindi non c'è nessuan difficolta di istallazione perchè fa tutto lui automaticamente (offre anche un comando per creare direttamente un nuova applicazione wxWindows con tutti i settaggi a posto). Le wxWindows possono anche essere scaricate per VisualC++. Le Fox non sono tiuscito a compilarle con successo con MinWG ma sono state facilmente compilate da VisualC++.

Queste librerie hanno il vantaggio di essere free, open source e multipiattaforma; le QT non sono completamente free per Windows. Non so se queste librerie free siano piu o meno potenti delle MFC, o piu o meno difficili da usare, anche se penso che probabilmente sono un po piu facili.
Purtroppo non penso che siano in molti a programmare interfacce grafiche "a mano", utilizzando direttamente le librerie, perchè quasi tuti utilizzano ambienti di sviluppo che costruiscono interfacce in modo visuale, come VisualBasic, o Delphi, ecc ecc...

Sarebbe utile se qlcuno con piu esperienza nel settore esprimesse il suo parere.

:ciauz:

gemini_76_it
20-02-2004, 22:21
Ciao anx721, grazie per essere intervenuto.


Cos'è MinGWDevelopper Studio? Un ambiente per C/C++? MinGW è il porting del compilatore GCC? Ma ammetterai che 62 MB da scaricare sono tantini!

Ti risulta che esista documentazione in ITALIANO sulle librerie che hai preso in considerazione?

Quanto ad ALLEGRO, ho fatto le mie brave ricerche, ho scaricato il tool. Del sito ufficiale c'è anche una versione in italiana, che però si perde giunti al momento CLOU: la documentazione, tutorial... E mancano screenshots. Cmq, farò riferimento alla versione francese.

Ma ALLEGRO è solo un tool per scrivere giochi ed applicazioni grafiche? O anche applicazioni desktop GUI classiche, con menu, finestre di dialogo, form, bottoni?

Chiedo anch'io come te l'intervento di altri con più esperienza nel settore per approfondire le domande poste al primo post (scusate il gioco di parole...)

anx721
20-02-2004, 23:35
MinWG Developper Stuio è un ambiente di programmazione per c/c++ basato su MinWG

http://www.parinya.ca/images/mds/windows/snapshot7.png

L'ultima versione di devc++ usa lo stesso compilatore MInGW.

Per ridurre il download puoi scaricare solo i sorgenti delle librerie, che devono poi essere compilate sul tuo ambiente.

Allegro è una libreria per sviluppare giochi in c/c++, non penso sia utilizzata per interfacce grafiche.

Per quanto riguarda la documentazione in italiano, non ne ho visto in giro, e comunque se vuoi programmare seriamente con queste librerie è indispensabile saper consultare la documentazione in inglese, anche se per ora per nessuna di queste librerie ho visto una documentazione all'altezza di quella di java, documentato nei minimi dettagli e con tanti tutorial,

:ciauz:

Johnny_Depp
21-02-2004, 02:58
Originariamente inviato da gemini_76_it
Grazie Johnny, anche per aver editato il titolo.
Ah, io non avevo preso in considerazione la parte grafica2d/3d...La creazione di giochini mi interessa... Ma forse ora è troppo presto.
Cmq,tu sviluppi in DEV C++ con le librerie già in esso integrate? Senza bisogno quindi di scaricarsi a parte dell'altro?
Hai una piccola porzione di codice da potermi postare per farmi un idea? gemini_76_it@yahoo.it

Cmq, più specificamente intendevo librerie per la scrittura di INTERFACCE utente, form, bottoni, menu a tendina, ecc..
...Utilizzo C e/o C++ Standard (qualsiasi compilatore fedele allo standard ansi, va bene) e le librerie grafiche del sistema operativo, nel mio caso Windows. (per capirci: uso le funzioni e le classi definite in <windows.h>)

Per capire meglio prova a leggere questo:
http://www.aleax.it/TutWin32/index.htm

Il miglior manuale in commercio sulla programmazione per WIN32:
http://www.librinformatica.it/novita/libri00/j2304.htm

gemini_76_it
21-02-2004, 11:49
Azz, ho dato un'occhiata a tutti i link che ho trovato al sito del MinGW Developper Studio :eek: ! E' sembra meglio del DEV C++... Ci sono solo due pecche: la dimensione (probabilmente inscatola una marea di roba che non userei mai e non saprei mai che esista nel MinGW Developper Studio installato...) e la pochezza della documentazione... il tutorial è Under Construction :stordita: !

Beh, in generale c'è un problema che vale per qualunque software: uno si installa un ambiente e si ritrova con una marea di file, directory, ecc. che non sa mai a cosa servono! A mio parere carenza di documentazione. Sarebbe interessante INIZIARE una discussione sotto l'occhio vigile dei MODERATORI che tratti i diversi compilatori o ambienti IDE in maniera più o meno approfondita. Io stesso sto cercando di reperire (con poco successo fin'ora... :fagiano: ) in un 3d quante più possibili INFO sul DEV C++.

Rientrando in TOPIC:
Ciò di cui ho bisogno è: Delle librerie COMPLETE per scrivere FORM:

1- NON troppo DIFFICILI da imparare, tale che si possa apprendere insieme l'uso delle stesse ed il LINGUAGGIO di programmazione (esempio C/C++ partendo quasi da 0, cioè da 2! :D ); in modo da non essere costretti a studiarsi prima tutto il linguaggio e poi, dopo aver programmato necessariamente all'inizio alla maniera consolle, cominciare lo studio delle librerie per convertire le applicazioni Consolle in applicazioni GUI.

2- NON troppo DIFFICILI da installare (cioè, prima assicurarsi di avere altre librerie di supporto per le dipendenze),

3- con una LICENZA AMPIA che mi permetta di fare qualsiasi cosa (uso e distribuzione, free o commerciale) col mio software prodotto,

4- BUONA documentazione, possibilmente in ITALIANO

5- (UTOPIA) strumento per creare semplicemente le FORM, un pochino visuali o almeno con una finestra che permetta di gestire le diverse proprietà di un oggetto della form.

6- Non so se è possibile, ma una certa FLESSIBILITA': Una LIBRERIA da potersi installare nel pc indipendentemente dal SOFTWARE utilizzato per lo sviluppo (senza andare ad installarle nelle sottodirectory del DEV C++, xkè ad esempio potrei trovare problemi nella compilazione ed allora userei un altro compilatore) o dal linguaggio utilizzato. Ad esempio, avere TOOLS per il C e il Python con dei loro moduli interni che automaticamente si riferiscano alle GTK (installate in una loro directory indipendente) per poterle utilizzare.

A proposito, le GTKMM sono scritte appositamente per il C++, e va bene, ma col C++ si possono anche usare le GTK+ standard? Lo chiedo xkè ho trovato in rete una versione ITALIANA della documentazione ufficiale delle GTK+...


Johnni, quando dici le librerie grafiche di Windows ti riferisci alle API? Dal link pare di sì... Devo dire che ho già da tempo scaricato da lì tutto il bel TUTORIAL. Solo che vorrei prima saperne di più sui diversi pacchetti disponibili prima di scendere nello studio di un qualcosa che sia troppo complicato per me. Ma con le API si può fare molto più delle sole INTERFACCE, giusto? Disegni, grafici, I/O, forse giochini(?)... Le mie desiderate FORM sembrano essere solo la punta dell'iceberg...
Così, a naso, le API sono le più complete e potenti, ma anche le più lunghe da imparare?

Secondo te, per quello che voglio fare io, cioè essere produttivo in meno di un secolo e con un minimo di completezza e libertà varie, quale LIBRERIA potrei usare?

anx721
21-02-2004, 13:23
MinGW Developper Studio è semplicissimo da usare, l'interfaccia è molto simile a quella di Devc++, piu di qlcuno lo trova migliore di devc++ e il file di istallazione è di 22 MB circa e comprende:

MinGWStudioFullSetup-2.05.exe (23,537,654):

- MinGW Developer Studio files
- MinGW(C/C++ only) Compiler 3.3.1
- Binutils 2.14.90
- Windows32 API 2.4
- MinGW Runtime Lirbraries 3.2
- GNU Debugger(GDB) 6.0
- GNU Make 3.80.0-3
- Windows API Reference Manual


Per quanto riguarda le tue richieste, in merito alle wxWindows e alle Fox:

1- NON troppo DIFFICILI da imparare. Quanto alle facilità di apprendimento, sicuramente usare le API di windows è parecchio più complicato...almeno bisogna usare le MFC, che nascondono molti dettagli tecnici e offrono un'interfaccia più pulita per il programmatore. Leggendo la documentazione sulle Fox e sulle wxWindows viene sempre messa in evidenza l'estrema facilità con si può costruire un'interfaccia e come si riesca ad essere produttivi sia da subito. In effetti ho provato a seguire qualche piccolo tutorial sui siti di riferimento ed è vero. Certo per imparare a sviluppare applicazioni piu complesse è bene avere una valida documentazione che spieghi con molti esempi come si usano i vari oggetti, oltre ad avere l'elenco di tutte le classi con relativi metodi.

2- NON troppo DIFFICILI da installare. Le Fox le ho istallate facilmente sotto VisualC mentre non ci sono riuscito con MinGW, (in realtà ho usato cigwin per compilarle, ma non me le compilava correttamente). Per le wxWindows non mi sono posto il problema avendo scaricata la versione gia inclusa in MinGW.

3- con una LICENZA AMPIA. Per quanto riguarda la licenza, essendo librerie free non penso che ci siano dei limiti sulla distribuzione.

4- BUONA documentazione, possibilmente in ITALIANO. In italiano non ho trovato nulla, anche se non è che abbia fatto grandi ricerche.

5- (UTOPIA) strumento per creare semplicemente le FORM. Per le wxWindows esiste un programma (non free, ma economico) wxDesigner, con cui puoi disegnare in modo visuale le interfacce. Mi pare che esiste qlcosa di simile anche per le Fox.

6- FLESSIBILITA'. Entrambe possono essere usate con MInWG - devc++ ma anche con VisualC della Microsoft: basta scaricare i sorgenti e poi te li compili per l'ambiente che vuoi.


Detto questo, per iniziare a fare qlche piccola applicazione ti sconsiglierei di buttarti sulle API native di windows, ma usare una libreria piu potente, potente nel senso che ti permetta di creare determinati componenti in modo immediato. Ad esempio, con wxWindow o Fox esistono classi specifiche che basta istanziarle per avere immediatamente finestre per la scelta o il salvataggio di un file,
finestre per la scelta di colori, di font, finestre per effettuare ricerche nel testo, classi che definiscono barre degli strumeti, bare di stato per le finestre, componenti che visualizzando pagine html come in un browser, componenti per creare visualizzazioni a tabelle o ad albero, ecc ecc. In pratica tu utilizzi queste classi per avere già pronti molti dei componenti piu comuni di un interfaccia grafica, che vengono implementate utilizzando funzioni di piu basso livello offerte dalle API di Windows, di cui tu non devi esplicitamente preoccuparti. In pratica, se paragoni un'interfaccia ad una casa, è come se le API di Windows ti offrono mattoni e cemento, libreire come MFC, wxWindows, Fox ti offrono finetre, porte, colonne, stanze, balconi, ecc ecc, tutti ovviamente personalizzabili, ma offrono anche la possibilità di creare componenti del tutto persoanli estendendo quelli gia esistenti. In definitiva, pur non avendo mai studiato le api di win32, di certo so che devi preoccuparti di molti piu dettagli rispetto ad altre e non è il modo migliore per iniziare ad essere subito produttivi, inoltre mi pare che la struttura che offrono è meno orientata agli oggetti.

Di più non so!

:ciauz:

gemini_76_it
21-02-2004, 14:22
Mammamia quanto hai scritto!!! :eek:

Ovviamente sono felicissimo!!! :mavieni: :metallica

Ora mi leggo tutta la tua fatica e se qualcosa non mi è chiaro riposto :p

:ciauz:

Loading