Øvelse+11.01+-+Simple+QT

Exercise 1
code format="cpp"
 * 1) include 
 * 2) include 

int   main(int argc, char* argv[]) {       QApplication app(argc, argv); QLabel* label =   new QLabel("Hello world!"); label->show; return app.exec; }

code Koden kunne umiddelbart indsættes, og ved ændring af en enkelt fejl (#include blev til #include) kunne programmet køre og følgende applikation fremkommer:

Exercise 2
Widget'et af typen QLabel skiftes ud med en QPushButton, og denne connectes til vores QT app, emitter signalet clicked til slottet quit

Exercise 3.1
Selve designet laves i QT designer, hvilket giver en MainWindow.ui fil, som indeholder selve designet.

Exercise 3.2
For at compile programmet laves køres først kommandoen

qmake -project

Dette giver en projekt fil, Herefter køres der følgende shell script:

code format="make" make clean qmake –project qmake make
 * 1) ! /bin/sh
 * 2) Script: qmake4host
 * 3) Builds qt applications for host (linux/x86)

code

Dette giver en en .h fil og en makefile

h-filen indeholder en klasse kaldet ui_dialog Der oprettes følgende klasse, som nedarver fra ui_dialog og QDialog

code format="cpp"
 * 1) include 
 * 2) include "ui_MainWindow.h"

class resizeClass: public QDialog, private Ui_Dialog { Q_OBJECT public: resizeClass {       setupUi(this); }

void resizeEvent(QResizeEvent*) {

// Replace the var mainLayout with the name of the // main layout in which all widgets and layouts are placed. horizontalLayoutWidget->resize(size); } private: }; code Denne klasse erstatter vores label og pushbutton fra tidliger opgaver, og ved at kompile den med den tidligere makefil opnåes følgende applikation:



Exercise 3.3
I denne øvelse implementeres funktionen bag gui'en. Der oprettes en QTimer, og en timeout-funktion. I timeout funktionen inkrementeres hastigheden og omdrejninger, og disse skrives til skærmen. Når hastigheden når 180 stopped der med at inkrementerer, desuden skrives værdien heletiden til de to dials.

On og off knapperne sender signalet clicked når de trykkes som fanges i slottet clickedOn og clickedOff, hvor timeren stoppes og status ændres.