|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2013
Messaggi: 205
|
[C] Interfaccia grafica Linux/windows
Ciao a tutti come da titolo volevo creare un interfaccia grafica!
![]() sapete indicarmi qualche guida?scusate se come sempre mi sono spiegato male ![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
|
Quote:
1) portabile senza differenze 2) facile da interfacciare con C 3) Veloce da programmare
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli! ![]() |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Le possibilita' essenzialmente sono due, o meglio 2 e mezza.
La prima prevede l'uso del framework QT (ottimo strumento, rodato da anni e largamente usato). Questo pero' e' un framework per C++ quindi dovresti impararti quest'ultimo (cosa abbastanza semplice se arrivi da C). La soluzione "1.5" sarebbe quella di utilizzare C++ per tutte le parti che concernono l' interfaccia grafica e scrivere invece la logica in C (cosa fattibilissima, ma richiede comunque un minimo di pratica di C++ per la parte grafica). L'altra soluzione invece e' l'impiego delle librerie GTK, disponibili sia per linux che per Windows, che sono invece per C e quindi non dovresti mettere mano ad altri linguaggi. Consiglio mio e' quello di impararti il C++, linguaggio ben piu' adatto alla scrittura di interfacce grafiche, o ancor meglio il C# che tramite il framework MONO permette la scrittura di applicazioni visuali (tramite WinForm) sia per linux che per Windows che per OSX, ed e' secondo me tutto un altro pianeta come esperienza di programmazione per questa tipologia di applicativi. |
![]() |
![]() |
![]() |
#4 | |
Member
Iscritto dal: Jan 2013
Messaggi: 205
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Jan 2013
Messaggi: 205
|
sai per caso consigliarmi qualche guida?...
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Prova con la pagina per gli sviluppatori di Gnome:
https://developer.gnome.org/gtk3/3.2/ Altrimenti come libro c'è questo: http://www.amazon.com/Foundations-De...dp/1590597931/ |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Feb 2005
Città: Lancusi (SA)
Messaggi: 193
|
Io ti consiglio le Qt..
Inviato dal mio Galaxy Nexus utilizzando Tapatalk |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Se vuoi imparare a scopo didattico, penso che spaccarsi la testa con le Gtk possa essere non-inutile; se però vuoi farci dei programmini o creare addirittura qualche app, ti consiglio caldamente di lasciar perdere e usare il framework Qt, che mette a disposizione un linguaggio per la creazione delle UI, il QML (Qt Markup Language).
Guardare qua per credere: questo sviluppatore crea l'interfaccia per l'app (desktop) di Spotify in 30 minuti usando QML: http://www.youtube.com/watch?v=Y1pqL5bXe0A&html5=1 Ovviamente lui ne sa una cifra di QML, visto che lavora sul framework Qt, però nel video non fa niente di trascendentale, visto che è una demo, non un approfondimento per esperti, eppure il risultato è mooolto buono e scrive poche righe di codice. Le UI non si scrivono con C/C++, si usano linguaggi dichiarativi (o se preferisci descrittivi), che dicono al computer cosa vuoi vedere anzichè i passi da eseguire per ottenere quel che vuoi. |
![]() |
![]() |
![]() |
#9 | |
Member
Iscritto dal: Jan 2013
Messaggi: 205
|
Quote:
|
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Allora mi sa che le GTK sono la via migliore. Dovrai prendere mano con l'infrastruttura che poggia sui GObject, ma é comunque un passo ben più corto dell'imparare un nuovo linguaggio e relativi Framework Sent from my Lumia 925 using Tapatalk |
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
|
Quote:
Fare un'interfaccia complessa non è facile già di per se. Farla con un linguggio come C che non ti offre molta pappa pronta aumenta la difficoltà a dismisura per un risultato che potrebbe essere abbastanza mediocre. Disegnare interfacce grafiche richiede skill estetiche e "architettoniche" che già in condizioni normali è difficile che un programmatore abbia. Andare per la via lunga complica solo le cose. Se non avessi avuto il vincono della portabilità ti avrei detto WPF senza rimpianti. Se proprio devi essere portabile allora... Io GTK non te lo avrei consigliato onestamente, è un casino immane, i pacchetti da cui dipende te li devi portare dietro su windows perché non ci sono (windows non è unix) e non hanno mai la stessa versione di quelli per linux, i risultati non sono quasi mai molto gradevoli e soprattutto non mi pare dalla domanda che poni che tu sia un esperto di programmazione, altrimenti saresti già andato su www.gtk.org e avresti cliccato su "download", "windows". A questa pagina trovi tutte le dipendenze e le versioni: (dipende se vuoi per windows 32 o 64 bit) http://www.gtk.org/download/win32.php Io ti rinnovo il mio invito a usare python almeno per la GUI e lasciare C solo alla logica se proprio devi.
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli! ![]() |
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
|
Quote:
Siamo sicuri che non sia più facile imparare qualcosa di meno ingarbugliato?
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli! ![]() |
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Potresti dare un'occhiata a questa libreria http://www.tecgraf.puc-rio.br/iup/
Comunque GTK+ è già di per sè abbastanza complessa, il futuro ( almeno a quanto leggo ) sembra molto ingarbugliato, e l'uso del C è qualcosa di micidiale. Direi che stai seguendo la strada più difficile possibile. Ma se hai questi vincoli, allora c'è poco da fare. Per il futuro considera di studiarti un pochino ( almeno ) il C++ e di usare QT ogni volta è possibile. |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Da come ha scritto mi pare un po' alle prime armi, quindi probabilmente l'unico vincolo che ha è "so solo un pochetto di C e voglio usare quello". Se è così, a maggior ragione evita di entrare in questo inferno...se non è così, beh, ho solo tirato ad indovinare
![]() |
![]() |
![]() |
![]() |
#15 |
Junior Member
Iscritto dal: Jul 2008
Messaggi: 8
|
usa c#, su windows hai un ambiente come visualstudio e su Linux puoi usare monodevelop
|
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Se però si parte senza la voglia di apprendere un linguaggio nuovo (e di cose da imparare e schemi mentali da rivedere nel passaggio da un linguaggio procedurale come il C a linguaggi ad oggetti come C++ o C# ce ne sono) la strada è strainsalita. Il connubio GTK&C è il classico "pain in the ***", ma se vuole procedere con il C, ad ognuno la sua croce ![]() |
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
Considerazioni personali...
Le api di Gtk non sono così strane o difficili da usare: http://www.micahcarrick.com/gtk-glad...al-part-1.html http://zetcode.com/tutorials/gtktutorial/ Se vuoi ci sono anche dei libri al proposito: http://www.amazon.com/Foundations-De...dp/1590597931/ Elenco di documentazione utile: http://www.gtk.org/documentation.php Io credo che tutti riescano a seguire le tantissime risorse che si trovano su Gtk+ Secondo punto, si sta veramente consigliando di usare WinForms? Il supporto WinForms su Mono è morto, non viene più seguito da nessuno, e su Linux ha zero integrazione grafica http://stackoverflow.com/questions/1...forms-for-mono Chi mandava avanti il progetto Mono ormai è interessato solo al mobile Terzo, Gtk+ è l'unio toolkit che permette di interfacciarsi con praticamente ogni linguaggio di programmazione esistente (si trovano bindings per Python, Ruby, C++, Java, .Net, D, Haskell, OCalm, Go, Javascript, php...) Quindi per esempio non conosci C perchè non hai mai fatto altro che script per il web? Gtk+ ti permette di usare anche Javascript http://zetcode.com/gui/javascriptgtktutorial/ E proprio per una qualità che qua pare tutti vogliano ignorare, o portare a svantaggio della piattaforma ("Che schifo C, dovevano farlo in .Net!" -- cosa che neanche MS ha fatto più guardacaso, con Windows 8 Runtime): E' codice scritto in C Sarei curioso di sapere quali altri toolkit grafici (altrattanto completi, non giocattoli) possono vantare la libertà della scelta del linguaggio che da Gtk+ Consiglio personale: Vai pure di Gtk+ Ti piace C? Usa C! Ti piace un linguaggio di cui nessuno ha mai sentito parlare? Probabilmente ci sarà un modo per usare quel linguaggio con Gtk+
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 Ultima modifica di nico159 : 27-10-2013 alle 14:34. |
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
![]() Stante il focus totalmente sul mobile, ci si può aspettare che Mono cominci sempre più a divergere rispetto a .Net? Lo chiedo perchè sarebbe una catastrofe nella catastrofe. |
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
Quote:
Mi chiedo se Miguel ogni tanto usi ancora una distro Linux ![]()
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 |
|
![]() |
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Se aggiungiamo che già mono manca di alcune librerie di .net, ne otteniamo due cose che hanno in comune solo il fatto di avere la compilazione jit e c#. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:10.