|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
[Interfacce] Windows
ok, so che la domanda è super banale ma stendendo il mio primo progetto mi son posto un problema che prima non mi ero mai posto:
- per una GNU/linux ci sono le GTK, le QT, le wxWidgets, e forse un milione di altri framework da far girare sopra X con i quali disegnare l'interfaccia - per MAC c'è solo Cocoa che è un framework nativo anche per iOS volendo e qui arriva il domandone: per Windows? esistono ovviamente un bel po' di versioni di Windows, per citare solo le più popolari attualmente si parla di ben 3 versioni, XP, Vista e 7, e tra XP e 7, almeno graficamente, ce ne passa un bel po' di acqua sotto i ponti vista l'introduzione di Aero. quanti e quali framework per interfacce grafiche offrono le varie versioni di Windows nativamente? un framework cross-platform tra i 3 sistemi ? ( GNU/linux, MAC OS e Windows ) |
|
|
|
|
|
#2 | ||
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Win32: le API del sistema operativo.
Quote:
Quote:
Ci sarebbero anche le Gtk, ma mi pare da masochisti usarle. |
||
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
le gtk pure esistono per i 3 sistemi operativi ma presentano un modello di programmazione tutt'altro che friendly poi qt è un vero framework che gestisce dai buttoni fino ai thread e ai socket se il cross-platform è vitale per te allora non hai scelta oltre a qt |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
vi ringrazio molto per le risposte, quindi Win32 gira sotto tutti i Windows nativamente? e WPF cosa offre in più?
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
wpf ha una lista abbastanza lunga di cose http://msdn.microsoft.com/en-us/library/ms754130.aspx non pensare però di poter usare wpf con mono perchè non è implementato....in genere chi usa mono o utilizza le winforms o fa cose strane tipo mischiare gtk# e qyoto ( qt per mono ) con mono se vuoi sviluppare per più sistemi operativi e non ami le rogne scegli qt....considera che qt non è c++, nel senso che lo puoi usare con moltissimi linguaggi diversi |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Quote:
mi sembra di capire che comunque con le WPF posso fare effetti grafici che con le Windows forms non posso fare, in sostanza le WPF usano anche aero e le DirectX ed hanno qualche API in più e saranno il futuro di Windows. con le QT si posso fare effetti tipo una interfaccia simil-3d oppure effetti semplici come fade-in e fade-out? edit: le QT hanno licenza LGPL, quindi dovrei rilasciare il codice ( di tutto il programma o solo dell'interfaccia? ) del software per usarle? se si, ok, le ho già depennate Ultima modifica di Freaxxx : 20-02-2011 alle 19:19. |
|
|
|
|
|
|
#7 | |||
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Piccola nota a parte: per sviluppare degnamente con WPF o Silverlight, Visual Studio non basta, ci vuole anche Blend. E mentre di VS esiste anche la versione gratuita, Blend è solo a pagamento. Quote:
Windows 7 ha introdotto Direct2d, che sarebbe la versione nativizzata di WPF, ma rappresentano 2 implementazioni distinte e al momento non ci sono piani (nè probabilmente mai ci saranno) per unificarle. Quote:
Ah incidentalmente troverai video che mostrano Qt girare tranquillamente anche su Android e iOS. |
|||
|
|
|
|
|
#8 | ||
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
se scarichi i qt-demos vedrai che le qt hanno molto da offrire in quanto ad effetti grafici ovviamente le qt sono ottimizzate pure per il mobile http://arstechnica.com/open-source/n...with-qt-47.ars considera che delle qt esistono port per android http://code.google.com/p/android-lighthouse/ ed è in corso il porting su iphone http://qt.gitorious.org/+qt-iphone/qt/qt-iphone-clone Quote:
quella licenza ammette la possibilità di distribuire programmi non gpl che usano qt Ultima modifica di pabloski : 20-02-2011 alle 19:37. |
||
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
ok, ho visto un paio di video e mi sembra interessante, ma le QT sono librerie che devo compilare staticamente con il mio programma o sono già disponibili nell'ambiente e devono essere linkate dinamicamente? questo ad esempio non l'ho capito.
Quote:
|
|
|
|
|
|
|
#10 | ||
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
logicamente puoi linkarle staticamente oppure dinamicamente o le fornisci con l'eseguibile/nell'installer Quote:
se usi le qt lgpl devi rendere disponibili i sorgenti delle qt, se usi la licenza commerciale non devi rendere disponibile nulla...ovviamente non puoi linkare staticamente le qt lgpl ad un programma non opensource poi la lgpl non ti garantisce supporto diretto da parte di nokia |
||
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Quote:
è un progetto interessante, però investire tutti quei soldi solo per l'interfaccia grafica mi sembra una presa in giro, è normale che poi solo pochissimi software usano le QT . a questo punto mi conviene puntare su Cocoa e WPF, almeno non devo pagare nulla se non per mettere le applicazioni sul market e i framework sono nativi. |
|
|
|
|
|
|
#12 | ||
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
la licenza lgpl è nata a causa delle lamentele di molti sviluppatori che non potevano usare librerie gpl nei loro software a codice chiuso ( commerciali e non ) la fsf creò la lgpl la quale stabilisce la possibilità di linkare librerie lgpl con programmi non a codice aperto quello che ti viene chiesto di fornire non è il sorgente del tuo programma ma della libreria lgpl che stai usando, in questo caso qt Quote:
attualmente vengono usate per lo più da adobe, google, skype, autodesk e qualche altro |
||
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Quote:
- NON devo pubblicare il sorgente del mio programma - NON devo pubblicare neanche la sola parte dell'interfaccia scritta in QT ma DEVO pubblicare le librerie QT che uso? cioé io distribuisco il mio exe, facendo il caso di Windows, e insieme, magari in un archivio compresso, devo metterci pure le QT? che senso ha? a questo punto non capisco ne la Lgpl in se, ne a che pro mettere le librerie vicino ad ogni programma distribuito, non era conveniente per entrambi mettere una citazione nei credits oppure usare un bel logo e un riferimento al sito ufficiale delle QT, ad esempio? inoltre se il circuito della distribuzione dell'applicazione non è da me gestito ed è chiuso, come si fa? accodo alla applicazione svariate MB di librerie a babbo morto? potresti chiarirmi gentilmente questo aspetto nella pratica? |
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
in ogni caso la licenza parla di rendere accessibili i sorgenti, quindi ( come si fa quasi sempre con i programmi gpl e lgpl ) basta un link al sito dove si trovano i sorgenti di qt la licenza in questione è questa http://www.gnu.org/licenses/lgpl-2.1.html e il punto che riguarda il caso è Codice:
5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. Codice:
You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. Codice:
b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. in soldoni se fai il linking statico stai incorporando la libreria nel tuo eseguibile e quindi è un lavoro derivativo, se invece usi il linking dinamico non è un lavoro derivativo logicamente dovendo distribuire i binari delle qt devi distribuire ( o linkare ad un sito che li distribuisce ) i sorgenti delle qt come prevede la licenza lgpl se le qt sono già installare sul pc dell'utente e quindi tu non le distribuisce nel tuo pacchetto, sei ovviamente assolto dal dovere dare i sorgenti delle qt....ad esempio i pacchetti linux siccome non hanno dentro le qt ma le scaricano tramite il package manager si ritiene che non distribuiscono le qt e quindi non devono mettere i sorgenti ( o un link ai sorgenti ) p.s. allego una traduzione della licenza http://it.wikisource.org/wiki/Licenz...l_progetto_GNU attenzione all'interpretazione di questa parte "b) Usare un appropriato meccanismo di condivisione delle librerie per collegare la Libreria. Un meccanismo appropriato è quello che (1) durante l'esecuzione utilizza una copia della libreria già presente nel computer dell'utente, anziché copiare le funzioni della libreria nell'eseguibile" quando parla di copiare le funzioni della libreria nell'eseguibile sta parlando di linking statico quando parla di usare una copia della libreria già presente nel computer dell'utente sta parlando di linking dinamico ( in questo caso il tuo programma è visto come isolato e quindi totalmente libero dalla lgpl ) Ultima modifica di pabloski : 20-02-2011 alle 23:03. |
|
|
|
|
|
|
#15 |
|
Member
Iscritto dal: Apr 2010
Messaggi: 67
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:44.




















