Wat is dit niet

Hier ga je niet leren om te programmeren in C++. Op het internet bestaan er genoeg handleidingen over C++.

Als je geen enkele programmeer ervaring hebt, ga je dit hier ook niet leren. C++ is een low level programmeertaal. Vooraleer aan C++ te beginnen, is het raadzaam om eerst een high level taal aan te leren zoals C#, PHP, Java, Python ... Deze high level talen hebben allemaal één ding gemeen, de basis is C++, en zijn makkelijker aan te leren dan C++.

Als je eenmaal een taal geleerd hebt, is het makkelijker om een andere taal aan te leren. De basis van een programmeertaal zijn hetzelfde, alleen de syntax verschilt. In iedere taal maak je gebruik van variabelen, vergelijkings operatoren, strings, integers, functies, includes ...

Voor iemand die kan programmeren, maar niet in C++, hier een voorbeeld van wat je kan verwachten.

	
	
	#include <iostream>
void int main()
{ std::cout << "Dit is een voorbeeld." << endl; ditIsEenFunctie(); return(0); }
void ditIsEenFunctie()
{ std::cout << "Ik ben een functie." << endl; }

Dit is dus een heel simpel programma. We printen "Dit is een voorbeeld." en daarna roepen we de functie ditIsEenFunctie() aan. In iedere high level programmeertaal zal deze code zonder probleem compileren en uitgevoerd worden. In C++ gaat deze code niet compileren. De compiler leest de code regel per regel in, en als hij bij de regel ditIsEenFunctie(); komt, zal hij een fout geven tot een ongedefinieerde functie en wel om de eenvoudige reden dat de functie na die regel wordt gedefinieerd.

Het is dus niet de bedoeling om jullie dat aan te leren. Dit is basis kennis C++

Wat is dit dan wel ?

Applicaties ontwerpen met een grafische schil zijn ingewikkeld en vergen veel regels code. QT maakt dit allemaal eenvoudiger. Als je programmeert in C# dan heb je de uitstekende Visual Studio IDE ter beschikking. Dit is echter speciaal ontworpen om applicaties te ontwikkelen voor systemen die het Microsoft Windows OS gebruiken.

QT heeft ervoor gezorgd dat je ook een dergelijke IDE hebt om grafische programma's te ontwerpen. Qt Creator is de IDE voor de ontwikkeling van GUI applicaties.

QT is een programmeertaal gebaseerd op C++. Het is hier de bedoeling om jullie wat wegwijs te maken in de QT taal tesamen met Qt Creator.

QT is platform onafhankelijk. De leuze van java is : ontwerp op 1 platform en voer uit op alle platformen, dankzij de JVM (Java Virtual Machine).

In QT ontwerp je de code voor 1 platform (waarop je werkt) en de code kan vervolgens op elk platform gecompileerd en uitgevoerd worden. C++ werkt op ieder platform.

Er worden ook veel C++ toepassingen geschreven met de GTK engine als grafische schil. Het verschil met QT is, dat QT zich aanpast aan je werkomgeving en niet zoals GTK programma's enkel en alleen aan de gtk bibliotheken. Met andere woorden, een programma gecompileerd met QT zal de vormgeving overnemen van het huidige thema van de computer. Op windows ziet het eruit als een windows programma, op een Mac zoals een mac programma.

QT en C++ code kunnen perfect naast elkaar leven. Wil je bv std::cout gebruiken i.p.v. qDebug, is dat perfect mogelijk. Je hoeft enkel en alleen de iostream te includen.

Als je wat gewoon bent aan QT, zul je merken dat QT heel wat makkelijker schrijft dan pure C++. Als je een probleem hebt, denk niet om het op te lossen via de C++ weg, maar probeer de oplossing te vinden via de QT weg.

Stack Overflow is een goede site om problemen opgelost te krijgen, alleen maken er veel de fout om C++ oplossingen te geven i.p.v. de gevraagde QT oplossing. Zoals gezegd, QT is volledig compatible met C++. Je kan de C++ headers includen en gebruiken maar dat levert onnodige includes op en verwarring in de code. QT is enorm goed gedocumenteerd en de documentatie heb je steeds bij de hand. Daarover meer als we aan de slag gaan met QT.

Ikzelf ontwikkel mijn programma's op een Linux platform. Ik gebruik Fedora als distributie omdat dit een rolling release is. Iedere Linux distro kan overweg met QT en heeft alles aan boord om dit te installeren. Zoals veel versies van programma's, zijn de hogere versies compatible met de lagere versies, maar niet omgekeerd. In de voorbeelden die ik ga geven wordt verwacht dat je een versie van 5.9 of hoger gebruikt. Vanaf versie 5.9 heeft QT een minder omslachtige manier voor getters en setters. Iedere rolling release distributie zoals de Arch based distributies hebben steeds de laatste QT versies. Hou je van debian based distributies, de 17.10 versies van ubuntu distro's gebruiken QT 5.9.1. Voor debian zul je gebruik moeten maken van Debian Sid. Er is trouwens ook nog een goede rolling release namelijk Neon-Kde. Neon is geen letterlijke rolling release zoals de andere. Met Neon heb je steeds de laatse plasma desktop, en aangezien plasma afhankelijk is van QT, heb je ook steeds de laatste release van QT. Voor hen die houden van de kde desktop, kan ik zeker die distributie aanbevelen boven iedere andere. Neon is uitermate snel voor een kde desktop. Ik heb deze distro ook op mijn computer en maak er soms ook gebruik van. Ikzelf ben verslingerd aan de Xfce4 desktop en daarom gebruik ik de Fedora Xfce4 spin. Is alleen een kwestie van gewoonte. Eenmaal je doorhebt hoe kde de zaken aanpakt en hoe je die volledig naar je hand kan zetten is dat zonder meer de compleetste desktop die er bestaat, en bovendien oogt het zeer mooi :)

Tijd dus nu om over te gaan naar de installatie van QT.