Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Moeilijk een goede start te maken met programmeren  (gelezen 3407 keer)

UbuntuCees

  • Gast
Moeilijk een goede start te maken met programmeren
« Gepost op: 2009/11/14, 11:13:36 »
Omdat ik in Ubuntu wil gaan programmeren heb ik op dit forum geprobeerd de benodigde informatie te vinden. Dat viel mij niet mee moet ik zeggen. Ik kon niet echt duidelijke beginners informatie vinden en al zeker niet gestructureerd bij elkaar gezet. Wel loopt er een topic over het opzetten van zoiets en dat lijkt mij gezien mijn ervaring tot zover een goede zaak.
Wel kwam ik er al zoekende na enige tijd achter dat voor de KDE omgeving Qt creator veel wordt genoemd en dat voor de Gnome omgeving GTK+ veel wordt genoemd. Qt creator zou ook veel uitgebreider zijn dan GTK+.

Even vooraf ter infomatie over mijzelf. Ik heb vroeger (lees 10-15 jaar geleden) onder DOS veel in C geprogrammeerd (ook met crosscompilers voor microcontrollers etc.), dus die taal is bekend en lijk mij het meest logisch om weer op te pakken. Een paar simpele programmaatjes met gedit en gecompileerd met GCC voor uitvoer in het terminalvenster waren zo gemaakt dus dat lukt wel. Verder heb ik van vroeger ook kennis van programmeren in assembler, Basic en Forth (Forth is btw een geweldige taal voor allerlei machine besturingen te maken, maar dat verder terzijde).

Maar voor programmeerwerk nu onder Ubuntu (of misschien beter gezegd Linux in het algemeen) wil ik nu ook met een GUI kunnen werken/programmeren en dat ben ik dus niet gewend (behalve een blauwe maandag een keer iets geprobeerd met visual basic).

Graag zou ik advies krijgen hoe ik dit nu het beste op kan pakken waarbij ik de volgende vragen heb:

1) Waarom wordt QT- creator steeds in verband genoemd met de KDE desktop. Als dit toch een cross-platform ontwikkelomgeving is moet je toch zeker ook voor Gnome er prima mee kunnen programmeren.

2) Wat mist GTK+ wat QT wel heeft?

3) Als ik iets zou maken met GTK+. Moet ik dan opnieuw gaan programmeren om het programma voor KDE geschikt te maken. En kan dit dan wel of niet met GTK+

4) Is er ergens een duidelijke handleiding te vinden hoe te starten met het programmeren met GUI.

5) Ik heb om wat te proberen toch QT-creator maar eens geinstalleed onder Ubuntu en ben gestart met het rekenmachine voorbeeld op http://vidiqatch.org/qt4gids/eersteprogramma.php Toen ik de eerste keer ging compileren kwam de melding dat g++ niet geinstalleerd was. Nadat ik dat geinstalleerd had komt ie nu steeds met de melding
"kpushbutton.h" Bestand of map bestaat niet.

Er hier strandt dus zo'n beetje mijn eerste poging.  :(

Een heleboel vragen dus. Maar waar het mij vooral om gaat is dat als ik tijd ga steken in het onder de knie krijgen van een ontwikkelomgeving, dat ik er dan later gezien mijn schaarse tijd niet graag achter kom dat ik beter dat andere pakket had kunnen nemen.

Bij voorbaat dank voor jullie helpende hand.

Grt, Cees
« Laatst bewerkt op: 2009/11/14, 11:17:53 door UbuntuCees »

Re: Moeilijk een goede start te maken met programmeren
« Reactie #1 Gepost op: 2009/11/14, 11:36:23 »
Citaat
1) Waarom wordt QT- creator steeds in verband genoemd met de KDE desktop. Als dit toch een cross-platform ontwikkelomgeving is moet je toch zeker ook voor Gnome er prima mee kunnen programmeren.
Omdat KDE gebruikmaakt van Qt als grafische toolkit. En daarom is het ook de meestgebruikte suite voor het maken van GUI's voor Qt.
Citaat
2) Wat mist GTK+ wat QT wel heeft?
Het Qt-framework is veel uitgebreider dan GTK+. Zo zit er een multimediasysteem in voor audio en video, een framework voor fysische bewegingen, kunnen Qt-toepassingen integreren met Mac OS X, Windows en GTK+, heeft het een IDE van professionele kwaliteit, een ingebouwde Webkit-engine voor het renderen van webpagina's (HTML, JavaScript, etc.), die ook wordt gebruikt in Apple Safari en Google Chrome, de mogelijkheid om te renderen met hardwareversnelling (OpenGL), uitgebreide ondersteuning voor SVG, en nog een hoop zaken. Installeer het pakket qt-demos in je pakketbeheer, druk op Alt+f2 , typ "qtdemo" en druk op enter.
Citaat
3) Als ik iets zou maken met GTK+. Moet ik dan opnieuw gaan programmeren om het programma voor KDE geschikt te maken. En kan dit dan wel of niet met GTK+
Dan moet je het inderdaad herprogrammeren met de API's van KDE en natuurlijk met Qt.
Citaat
4) Is er ergens een duidelijke handleiding te vinden hoe te starten met het programmeren met GUI.
http://doc.trolltech.com/
http://www.gtk.org/documentation.html
Citaat
Ik heb om wat te proberen toch QT-creator maar eens geinstalleed onder Ubuntu en ben gestart met het rekenmachine voorbeeld op http://vidiqatch.org/qt4gids/eersteprogramma.php Toen ik de eerste keer ging compileren kwam de melding dat g++ niet geinstalleerd was. Nadat ik dat geinstalleerd had komt ie nu steeds met de melding
"kpushbutton.h" Bestand of map bestaat niet.
Je moet natuurlijk eerst de C++-compiler installeren. Installeer het pakket build-essential. Daarnaast gebruikt die tutorial blijkbaar KDE-libraries (KPushButton lijkt me een KDE-term), dus moet je ook kdelibs-dev installeren. Welkom in de wereld van Linux, waarbij je het internet niet meer hoeft af te struinen voor allerlei losse headers: je gebruikt gewoon het pakketbeheer ;)
« Laatst bewerkt op: 2009/11/14, 14:56:57 door Cumulus007 »

Offline MataS

  • Lid
Re: Moeilijk een goede start te maken met programmeren
« Reactie #2 Gepost op: 2009/11/14, 14:08:35 »
Citaat
1) Waarom wordt QT- creator steeds in verband genoemd met de KDE desktop. Als dit toch een cross-platform ontwikkelomgeving is moet je toch zeker ook voor Gnome er prima mee kunnen programmeren.
Zoals Cumulus007 al heeft verteld, maakt KDE gebruik van Qt als grafische toolkit. Voor gnome wordt GTK+ gebruikt.
Beide toolkits werken ook op andere omgeving, m.a.w. je kunt ook Qt in gnome gebruiken en GTK+ in KDE.
De reden dat er in KDE alléén Qt wordt gebruikt voor KDE-programma's en in gnome precies hetzelfde met GTK+, is dat dat het mooiste is. Zo blijven alle standaard programma's in dezelfde stijl en hoeft de gebruiker niet aan twee stijlen te wennen.

Al moet ik zeggen dat Qt behoorlijk goed integreerd in gnome: je ziet wel verschil tussen de twee, maar bij Qt hebben ze er voor gezorgd dat Qt in een gnome omgeving niet een compleet andere wereld is.
Ik geloof dat het andersom (GTK+ in KDE) wel het geval is, maar daar weet ik niks van (ik gebruik gnome, geen KDE)

Re: Moeilijk een goede start te maken met programmeren
« Reactie #3 Gepost op: 2009/11/14, 14:54:21 »
Citaat
Ik geloof dat het andersom (GTK+ in KDE) wel het geval is, maar daar weet ik niks van (ik gebruik gnome, geen KDE)
Vanuit GTK+ is er geen enkele ondersteuning voor Qt, het is dus behelpen met thema's die lijken op het standaard KDE-thema...

UbuntuCees

  • Gast
Re: Moeilijk een goede start te maken met programmeren
« Reactie #4 Gepost op: 2009/11/14, 17:49:38 »
@Cumulus007 en MataS
Dank voor de snelle antwoorden. Als ik jullie goed begrijp kan ik dus met een gerust hart verder gaan met Qt.
Het 1e programmaatje uit de tutorial heb ik werkend intussen. Zat 'm in het gebruiken van een verkeerde button. (Waarom die headerfile dan niet beschibaar was weet ik even niet want aanvankelijk kreeg ik ook nadat kdelibs-dev had geinstalleerd nog steeds dezelfde foutmelding.) Maar goed het werkt nu dus ga ik maar eens wat verder stoeien.
Maar ik heb zo'n vermoeden dat ik mijn laatste vraag nog niet heb gesteld op dit forum.  ;)

Grt, Cees


Offline JanClaeys

  • Lid
Re: Moeilijk een goede start te maken met programmeren
« Reactie #5 Gepost op: 2009/11/23, 22:08:32 »
Het Qt-framework is veel uitgebreider dan GTK+. Zo zit er een multimediasysteem in voor audio en video, een framework voor fysische bewegingen, kunnen Qt-toepassingen integreren met Mac OS X, Windows en GTK+, heeft het een IDE van professionele kwaliteit, een ingebouwde Webkit-engine voor het renderen van webpagina's (HTML, JavaScript, etc.), die ook wordt gebruikt in Apple Safari en Google Chrome, de mogelijkheid om te renderen met hardwareversnelling (OpenGL), uitgebreide ondersteuning voor SVG, en nog een hoop zaken. Installeer het pakket qt-demos in je pakketbeheer, druk op Alt+f2 , typ "qtdemo" en druk op enter.
Qt is een algemeen framework waar o.a. ook GUI widgets in zitten.

Gtk is wat GNOME & XFce gebruiken voor widgets, voor andere dingen gebruiken ze andere libraries zoals Glib, GDK, GObject, GStreamer, Pango, Cairo, Clutter, GIO, GAIL, VTE, GDA, GtkWebkit, RSVG, etc.  De verzameling bibliotheken waar GNOME op bouwt is dus gewoon veel modulairder & losser (wat voor- & nadelen heeft).
Jan Claeys
Ubuntu-nl IRC team - Ubuntu-be LoCoTeam Contact

Offline rman

  • Lid
Re: Moeilijk een goede start te maken met programmeren
« Reactie #6 Gepost op: 2009/12/08, 15:01:46 »
Ik heb jaren geleden in een Linux tijdschrift gelezen dat GTk+ volledig opensource software is en dat dit niet het geval is met Qt.
Weet iemand of dit nog steeds zo is?
steunpunt: Delft
Happy throngs, where ever you go

Offline Emil

  • Lid
Re: Moeilijk een goede start te maken met programmeren
« Reactie #7 Gepost op: 2009/12/08, 17:50:06 »
Ik heb jaren geleden in een Linux tijdschrift gelezen dat GTk+ volledig opensource software is en dat dit niet het geval is met Qt.
Weet iemand of dit nog steeds zo is?
Nee. Qt wordt nu onder een verschillende licensies uitgegeven, een commerciële versie, GPLv2, GPLv3 en LGPLv2. Meer informatie vind je hier: http://qt.nokia.com/products/licensing

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Moeilijk een goede start te maken met programmeren
« Reactie #8 Gepost op: 2009/12/09, 07:45:33 »
1) Waarom wordt QT- creator steeds in verband genoemd met de KDE desktop. Als dit toch een cross-platform ontwikkelomgeving is moet je toch zeker ook voor Gnome er prima mee kunnen programmeren.
Zoals reeds gezegd, omdat KDE gebruikmaakt van Qt, maar Qt is inderdaad volledig cross-platform en integreert perfect in GNOME. De nieuwste Qt-versies hebben een QGtkStyle module die ervoor zorgt dat je Qt-programma perfect integreert met je gekozen GNOME-thema. Omgekeerd is dit jammer genoeg niet het geval (GTK+ programma's in KDE zien er niet uit als andere KDE programma's, hoewel een apart programmaatje gtk-qt-engine dit wel probeert te realiseren, maar jammer genoeg is dit verre van perfect)

2) Wat mist GTK+ wat QT wel heeft?
Buiten het feit dat Qt gewoon meer is dan slechts een GUI toolkit en er dus allerlei modules bijzitten (het is wel netjes opgedeeld in modules dus) die GTK+ standaard niet heeft, wat reeds werd vermeld, zijn andere grote pluspunten: uitstekende documentatie, zeer veel voorbeeldcode, naast open source programmeurs zijn er ook een heleboel betaalde programmeurs constant bezig met het verbeteren van Qt en wordt er veel geld uitgegeven aan R&D (onderzoek&ontwikkeling) en QA (kwaliteitsgarantie).

3) Als ik iets zou maken met GTK+. Moet ik dan opnieuw gaan programmeren om het programma voor KDE geschikt te maken. En kan dit dan wel of niet met GTK+
Niet direct, aangezien GTK+ programma's wel kunnen draaien in KDE mits de juiste libraries zijn geïnstalleerd. Omgekeerd is hetzelfde waar, Qt programma's kunnen draaien in GNOME mits de juiste libraries zijn geïnstalleerd. Wel is de integratie van Qt programma's over het algemeen (zoals notificaties, uiterlijk) in GNOME beter dan de integratie van GTK+ programma's in KDE.

4) Is er ergens een duidelijke handleiding te vinden hoe te starten met het programmeren met GUI.
Als je C++ kent kan je eigenlijk meteen aan de slag met de API documentatie op http://doc.qt.nokia.com/4.6/index.html
De examples zijn ook een zeer goede bron van informatie: http://doc.qt.nokia.com/4.6/examples.html
Ook zijn er boeken over geschreven, zoals C++ GUI Programming with Qt, geschreven door ontwikkelaars van Qt zelf,
waarvan de eerste editie (gebaseerd op Qt 4.1) gratis beschikbaar is en de tweede editie (gebaseerd op Qt 4.3) te koop is.
Eerste editie: http://www.qtrac.eu/C++-GUI-Programming-with-Qt-4-1st-ed.zip
Tweede editie: http://www.informit.com/store/product.aspx?isbn=0132354160

Als je nog niet veel van C++ kent is het boek Introduction to Design Patterns in C++ with Qt4 een aanrader.
Dit boek leert je netjes programmeren aan de hand van populaire programmeermethodes en gebruikt hierbij Qt4 om de lezer zowel terminalprogramma's als grafische programma's te leren schrijven. Het boek is gratis (open source) beschikbaar op http://cartan.cas.suffolk.edu/oopdocbook/opensource/index.html

5) Ik heb om wat te proberen toch QT-creator maar eens geinstalleed onder Ubuntu en ben gestart met het rekenmachine voorbeeld op http://vidiqatch.org/qt4gids/eersteprogramma.php Toen ik de eerste keer ging compileren kwam de melding dat g++ niet geinstalleerd was. Nadat ik dat geinstalleerd had komt ie nu steeds met de melding
"kpushbutton.h" Bestand of map bestaat niet.
Die gids is nogal crappy :) ben er zelf niet erg tevreden over en heb ook helemaal de tijd niet gehad om hem up-to-date te houden of af te werken. De melding dat je kpushbutton.h mist is erg vreemd, want dat is KDE-specifiek en in die qt4gids wordt er geen gebruik gemaakt van KDE-specifieke libraries.

Maar waar het mij vooral om gaat is dat als ik tijd ga steken in het onder de knie krijgen van een ontwikkelomgeving, dat ik er dan later gezien mijn schaarse tijd niet graag achter kom dat ik beter dat andere pakket had kunnen nemen.
Met Qt ga je dat zeker niet meemaken. Met Qt heb je bakken mogelijkheden en draaien je programma's op tientallen verschillende platformen (waaronder vanzelfsprekend Linux, Windows, Mac OS X, BSD-varianten, Solaris, QNX, Windows CE, Embedded Linux, Symbian OS...) Ook wordt Qt erg actief ontwikkeld. Ik durf gerust stellen dat het één van de allerbeste frameworks is die je kan gebruiken in combinatie met C++.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Moeilijk een goede start te maken met programmeren
« Reactie #9 Gepost op: 2009/12/09, 07:51:15 »
Ik heb jaren geleden in een Linux tijdschrift gelezen dat GTk+ volledig opensource software is en dat dit niet het geval is met Qt.
Weet iemand of dit nog steeds zo is?
Qt is altijd open source geweest, maar de licentievormen zijn regelmatig aangepast geweest en legden vroeger soms restricties op. Op dit moment is Qt echter open source in de ruimste zin van het woord.

Om een vergelijking te maken is GTK+ enkel beschikbaar onder een LGPL 2.1 licentie terwijl Qt sinds versie 4.5 beschikbaar is onder 3 licenties: LGPL 2.1, GPL 3.0, commercieel.
Je kan als ontwikkelaar zelf kiezen wat jou het beste past.

Ook is alle code van Qt tegenwoordig ten allen tijde beschikbaar in git en worden externe contributies (van open source programmeurs) geaccepteerd.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Re: Moeilijk een goede start te maken met programmeren
« Reactie #10 Gepost op: 2009/12/10, 10:22:59 »
wxWidgets zijn volgens mij een populaire toolkit om een programma een native ook and feel te geven zodat je niet een compleet ander programma hoeft te maken voor gtk/ qt /windows. Ook zou je voor desktop applicaties eens naar Python in plaats van c++/c kunnen kijken. Het is een scripttaal dus het is een stuk langzamer, maar ontwikkelen is eenvoudiger.
« Laatst bewerkt op: 2009/12/10, 11:32:42 door AptlyNamed »

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Moeilijk een goede start te maken met programmeren
« Reactie #11 Gepost op: 2009/12/10, 10:56:25 »
Dat klopt niet volledig, want WxWidgets geeft je jammer genoeg géén native look op Qt-based desktops zoals KDE.

Qt daarentegen geeft je programma een native look & feel op elk populair systeem, incl. GTK+ based desktops zoals GNOME/Xfce, Qt-based desktops zoals KDE, Windows XP/Vista/7, Mac OS X (Cocoa) :) De style engines voor de verschillende platformen worden steeds verbeterd en je moet toch echt moeite doen om op GNOME nog onderscheid te zien tussen een GTK+ en Qt programma indien men QGtkStyle gebruikt. Hetzelfde geldt voor Mac OS X programma's, hoewel daar sommige marges nog niet altijd volgens de Apple HGI zijn maar daar werkt men aan ;)

Python kan inderdaad ook gebruikt worden in combinatie met zowel WxWidgets als GTK+ als Qt, maar aangezien je toch al ervaring hebt met C zou ik gewoon bij C++ blijven :)
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Re: Moeilijk een goede start te maken met programmeren
« Reactie #12 Gepost op: 2009/12/10, 12:20:12 »
je moet toch echt moeite doen om op GNOME nog onderscheid te zien tussen een GTK+ en Qt programma indien men QGtkStyle gebruikt.
Persoonlijk vind ik QGtkStyle nog te veel verschillen geven. Het is denk ik een kwestie van smaak, maar wel iets om rekening mee te houden.