QT Application Framework (Ervaringen)
dj bazzie wazzie op 17 november 2010 #
Ik vroeg mij af of er mensen ervaringen hebben met QT. Het ziet er veelbelovend uit en ondersteund veel syntaxes (voor mij C++). Google Earth, autodesk en skype zijn grote applicaties die deels of volledig gemaakt zijn met QT framework. Volgens Nokia zou een programma geschreven op OS X na een rebuild op Windows moeiteloos moeten kunnen draaien.
Wat ik graag wil weten is hoe compatible is daadwerkelijk QT, gebruiksvriendelijkheid en e.v.t. de nadelen van QT t.o.v. C (C99 of GNU99) bijvoorbeeld. Dit is erg slecht te vinden op het web namelijk.
Pieterr op 17 november 2010 #
Ik heb er wel eens mee gewerkt. Zie ook
http://www.onemorething.nl/community/topic/qt-45-ondersteunt-cocoa
marcelnijman op 17 november 2010 #
Het belangrijkste voordeel van Qt is de portabiliteit. En dat werkt ook echt zoals je het verwacht. Je kunt je hele programma in één OS ontwikkelen, en als je het daarna op een ander OS compileert en runt, dan gaat dat foutloos.
Een tweede voordeel is dat Qt veel basisklassen (String, Array ...) heeft, vergelijkbaar met de klassen in Foundation. Als je heel handig bent met STL heb je dat eigenlijk niet nodig. Zo niet, dan is het zeer handig dat je je over de basisingrediënten van je programma geen zorgen hoeft te maken.
Qt is ook zeer gebruikersvriendelijk, met name omdat het goed ontworpen is en de documentatie erg goed is (bijna vergelijkbaar met de documentatie van Foundation in Xcode).
Tot zover het reclamepraatje.
Ik ben gestopt met het gebruik Qt als GUI. Portabiliteit is erg fijn, maar de prijs is dat het er op elk platform even lelijk uitziet. Dat is natuurlijk subjectief, maar feit is dat je applicatie een soort van grootste-gemene-deler-GUI krijgt. Zeker als je Qt professioneel wilt gebruiken is dat een probleem. Elk OS heeft nou eenmaal een eigen look en feel. Die 'look' hebben ze wel zo goed mogelijk weten na te maken, maar de 'feel' niet. Dus als je naast functionaliteit ook emotie probeert te verkopen maak je je het met Qt wel heel moeilijk.
Een belangrijke oorzaak hiervan is dat de grafische layout van de GUI niet 100% gelijk is per OS. De breedte van een checkbox, de font-grootte van het standaardfont, de afmetingen van een scrollbar, alles is net anders, waardoor een op het ene OS zorgvuldig gecreëerde layout er op een ander OS als bagger uitziet. Een remedie is het gebruik van #ifdef WINDOWS en dergelijke om de GUI programmatisch en per OS op te bouwen.
Maar dat lost nog niet een ander probleem op, namelijk dat GUI-elementen die specifiek zijn voor een OS (bijv. de sidebar in OSX) niet ondersteund worden, terwijl je gebruikers dit wel verwachten. Veel mensen die een mooie maar dure Mac kopen willen daarop geen grauwe programma's draaien die niet speciaal voor de Mac gemaakt zijn.
De programma's die je noemt gebruiken inderdaad Qt, maar niet allemaal voor de grafische interface. Skype voelt OSX (en gebruikt Qt met name voor Foundation en voor sommige windows). Zie bijvoorbeeld het driehoekje met "Advanced Search" in "Add a Contact...". Dat is puur OSX. Zie ook "Customize Toolbar...". Nokia claimt dat het Qt is, maar dat is zeker niet waar!! Daarentegen voelt Google Earth als Qt (want gebruikt volledig Qt voor de GUI). Nou is Google Earth natuurlijk heel erg goedkoop *en* heel erg functioneel, dus je zult je misschien niet ergeren aan de layout, maar als je met een kritisch oog kijkt zul je waarschijnlijk niet blij worden van hoe die applicatie er uit ziet.
Maar goed, ik geef toe dat hier een hoop subjectiviteit in zit. Als je een programma maakt waaraan je wilt blijven door-ontwikkelen, dan is het wel een groot voordeel dat je elke nieuwe feature niet 3 keer hoeft te implementeren. Dat pleit voor Qt.
Aan de andere kant dwingt het gebruik van een native GUI per OS af dat je je strikt aan CMV (Control Model View) houdt. Bij elke regel code moet je beslissen of dat bij je (OS-onafhankelijke) Control of Model hoort, of bij je (OS-afhankelijke) View. Maak je hierin een fout, dan compileert het niet op het andere OS, waarna je de code op de juiste plek kunt zetten. Dat levert schone code op, die (in zijn geheel of in onderdelen) makkelijk op andere plekken inzetbaar is. Dit voordeel vind ik zo groot dat ik graag per OS een native GUI maak.
En je vraagt naar de nadelen van Qt t.o.v. C, maar dat is eigenlijk geen goeie vraag. Qt is een Application Framework, C is een taal. Ook als je in C programmeert zul je een GUI willen hebben.
Succes met je keuze!
MadDonna op 17 november 2010 #
De applicatie waar je elk jaar je belastingen in moet opgeven is volgns mij geschreven met behulp van QT. Dat schijnt de belastingdienst behoorlijk wat geld te hebben gescheeld.
TGV op 17 november 2010 #
Bij een eerste vergelijking vond ik wxWidgets beter uit de bus komen. Dat is ook platform-onafhankelijk en ook daar is de layout niet om over naar huis te schrijven.
dj bazzie wazzie op 17 november 2010 #
Hartelijk dank allemaal (met name marcel nijman)
Het is voor zover duidelijk en betreft de GUI was ik al bang voor. Maar de portabiliteit is nu even van groter belang. Het programma waar het om gaat is de gebruiksvriendelijkheid belangrijker dan een mooie look omdat het geen commercieel programma gaat worden maar voor eigen gebruik en voor klanten. De software die klanten zelf ontwikkeld hebben wijken ook altijd af van het interface van OS X. Waar het programma om draait is namelijk kostenbesparingen voor zowel onszelf als voor de klant. Wanneer dit hoog in het vaandel staat worden mooie looks meestal als laagste prioriteit gezien in tegenstelling tot commerciële applicaties.
Ik ga er toch even mee aan de slag en misschien bevalt het mij wel.
Advertentie
Je kunt alleen reageren met een gratis OMT account.
Log in of registreer.
Inloggen
Over dit topic
Gestart op 17 november 2010 door dj bazzie wazzie
Laatste reactie door dj bazzie wazzie
Reageer op dit topic