Windows GUI applicatie met QT Creator.

© John Viser, Dave Stikkolorum en Harry Broeders.

Deze pagina is bestemd voor studenten van de Haagse Hogeschool - Academie voor Technology, Innovation & Society Delft.

Met behulp van QT kun je onder andere twee soorten windows applicaties ontwikkelen:

Tot nu toe hebben we bij dit practicum console applicaties gemaakt. Ik zal jullie op deze pagina laten zien hoe eenvoudig het is om een Windows applicatie (inclusief menu, knoppen enz) in elkaar te zetten met behulp van QT Creator.

Inhoud.

Het Windows operating systeem.

Voordat we kunnen beginnen moet ik jullie eerst enkele dingen vertellen over het Windows OS (operating systeem). Zoals je wel weet is het operating systeem verantwoordelijk voor alle beheerszaken in de PC. Het operating systeem is onder andere verantwoordelijk voor:

Een applicatie kan (moet) dus voor al deze zaken gebruik maken van het operating systeem. De vraag is nu hoe communiceert jouw Windows-applicatie met het Windows OS. Dit gaat door middel van functie-aanroepen. Alle functies die aan te roepen zijn in het Windows operating systeem vormen een zogenaamde API (Application Programmers Interface). Als we gebruik maken van de zogenoemde Windows API dan draaien onze applicaties op WindowsXP, Windows Vista en Windows 7. Het aantal functies in deze API is heel groot en het gebruik van deze API is zeker niet eenvoudig. Behalve dat onze applicatie met het Windows OS moet communiceren moet het Windows OS ook events (gebeurtenissen) aan onze applicatie kunnen doorgeven. Denk daarbij aan dingen zoals:

Als z'n event optreedt dan stuurt het Windows OS een message naar het Window waarop dit event betrekking heeft. Een applicatie kan bestaan uit meerdere windows. Het OS ziet een knop of een scrollbar overigens ook als een apart "window". Elk window moet daarom bij het opstarten het adres van een zogenaamde messagehandler opgeven aan het OS. Als er dan een event optreedt dan zal het Windows OS de messagehandler van het betreffende window aanroepen. Als argument geeft Windows dan een message datastructuur mee. Deze message bevat het message-id en enkele parameters. De messagehandler van een window bestaat dus uit een groot switch statement waarin bepaald wordt welke message het OS naar dit window stuurt en welke actie het window daarop moet ondernemen.

Samengevat kunnen we dus zeggen:

De meeste windows applicaties zullen nadat ze opgestart zijn niets anders doen dan wachten op messages van het OS en afhankelijk van deze message's bepaalde acties uitvoeren. Omdat de events die optreden het gedrag van z'n programma bepalen noemt men zulke programma's event-driven.

Het Windows operating systeem heeft dus geen object georiënteerde interface maar een procedurele interface. Het ligt natuurlijk voor de hand om een groep met classes te ontwikkelen die de complexiteit van de win32 API voor ons verbergen. Een verzameling bij elkaar behorende classes die gebruikt kunnen worden om bepaalde applicaties te ontwikkelen (in dit geval GUI = Graphical User Interface applicaties) wordt een framework genoemd. Er zijn meerdere bekende frameworks voor het ontwikkelen van Windows applicaties:

Behalve de frameworks bieden zowel Microsoft als Borland ontwikkeltools die het gebruik van deze frameworks aanzienlijk vereenvoudigen. Qt Creator is een platform onafhankelijk ontwikkeltool waarmee zowel op linux als op een windows platform gewerkt kan worden.

Je eerste windows GUI programma met behulp van QT Creator.

Als je een applicatie ontwikkelt met behulp van het QT framework maak je (bijna zonder dat je er erg in hebt) gebruik van overerving.
Om een GUI applicatie te kunnen maken moet je het volgende doen:

Reageren op de muis.

Laten we het programma nu eens zodanig aanpassen dat dit programma reageert op bepaalde events die veroorzaakt worden door de gebruiker. Bijvoorbeeld op een muisklik.

Toevoegen van menubalk.

Qt bevat een groot aantal kant en klare componenten. Laten we eens kijken hoe je deze componenten kunt gebruiken om je programma van een menubalk te voorzien. De menubalk kan gebruikt worden om commando's naar het programma te sturen.

Hieronder volgt een overzicht van de commando's die we willen toevoegen:

Commando Menu In knoppenbalk? Beschrijving

Afsluiten

Afsluiten

Ja

Sluit de applicatie.

Blauw

Kleur

Ja

Kleur het kruis blauw.

Groen

Kleur

Ja

Kleur het kruis groen.

Rood

Kleur

Ja

Kleur het kruis rood.


De menu's kun je nu als volgt invoegen:

Het programma heeft al een knoppenbalk en een statusbalk. Hoe je hier iets mee kunt doen zou ik graag uit willen leggen maar de tijd ontbreekt me...

Toevoegen van dialog schermen.

Dit deel moet nog geschreven worden...

Tips en Trucs.

Bij het gebruik van QT zijn er een aantal dingen die heel handig zijn om te weten:

Meer informatie.

Op de volgende plaatsen vind je meer informatie over het gebruik van Qt Creator.