Wir machen mit dem ersten dynamischen Layout weiter, dem “Horizontal Layout”. Damit richten wir Komponenten horizontal aus und können auch das Expandieren richtig setzen.

Beginnen wir mit Layouts. Layouts sind toll. Besonder gut gefallen mir die Sizer von wxWidgets. Hier geht es aber um Qt, und Qt bringt ein ähnliches System mit. Wir starten mit dem „Absolute Layout“, in dem alle Komponenten fest ausgerichtet sind (X und Y). Wie das funktioniert und warum ich davon abrate, dieses Layout zu nutzen, in diesem Video.
In diesem Video zeige ich, wie man ein eigenes Signal erstellt und sich mit einem Slot darauf verbinden kann.
Wir legen zuerst in der Header-Datei im Bereich „signals:“ ein Signal an, bspw. void mySignal();. Dann können wir das mit „emit mySignal();“ aufrufen. Alle verbundenen Slots werden dann automatisch aufgerufen.
Nachdem wir uns grundlegendes zu den Signals und Slots in Qt angesehen haben, zeige ich heute, wie man sich auf Signale konnektieren kann. Dazu zeige ich zwei Methoden über das GUI in QtCreator und eine direkt im Code.
Ein Slot lässt sich recht einfach verbinden. Ein Beispiel:
connect(myPushButton, &QPushButton::clicked, this, &MainWindow::mySlot);
Wir beschäftigen uns heute damit, wie die Signalverarbeitung, also Callbacks, in Qt mittels Signal und Slots funktioniert.
Normalerweise ist es so, dass man in C++ zum Aufruf von Methoden Methodenzeiger nutzt. Qt will da flexibler und einfacher sein und hat somit das Signal-Slots-Konzept eingeführt. Auf ein Signal können sich mehrere Slots verbinden.
Diese Konzept kommt aber nicht nur in der GUI-Entwicklung zum Tragen, sondern es wird auch bei GUI-losen Komponenten wie der Netzwerkprogrammierung eingesetzt.
Es ist endlich soweit: wir schreiben unser erstes eigenes Programm. Dabei handelt es sich um ein Fenster mit einer Schaltfläche sowie einem Eingabefeld, in welches wir beim Klick auf die Schaltfläche “Hello World” eintragen.
Wir beginnen erst einmal sehr oberflächlich. Später gehen wir tiefer ins Detail. Versuchen wir, die ersten Erfolge zu genießen.
Dieses Video zeigt in kurzer Weise, wie man mit QDebug einfache Ausgaben im Ausgabenfenster des QtCreators macht.
Wie man die anderen Dinge von QDebug benutzt und auch Debugging-Informationen umleitet, sei es in eine Datei, eine speziell formatierte Ausgabe, in eine Datenbank, uvm., werden wir in dieser Videoreihe später noch sehen.
Da ich jetzt ja mit YouTube begonnen und aufgrund meiner jetzigen Situation ein wenig Zeit habe, habe ich mir überlegt, an einem neuen privaten Projekt zu arbeiten, um nicht aus der Übung zu kommen. Und genau deswegen dachte ich: warum nicht aufzeichnen und auf YouTube veröffentlichen?
Genau das möchte ich jetzt mit KooKooK versuchen. Es hat mehrere Hintergründe. Ein Ziel ist es auf jeden Fall, mein Portfolio weiter auszubauen, denn ich bin ja auf Jobsuche. Dann dachte ich mir, ich kann sicher noch einiges dazulernen und du vielleicht auch.
Dabei gibt es aber folgende Vorstellung meinerseits. Ich werde die Videos nicht scripten. Ich werde einfach loslegen, Fehler bleiben drin, damit wir was daraus lernen, Versprecher ebenso und alles, was so schief geht. Weiterhin möchte ich mich bei den Videos aber auch nicht nur auf das Coding konzentrieren. Ich möchte euch bei allen Dingen mitnehmen. Natürlich wird ein großer Teil die Programmierung sein, aber ich zeige euch auch, was ich als Projektverwaltung benutze, wir richten die Website ein, scribbeln, malen/zeichnen und machen all das, was man ebenso macht, um eine kleine Software zu entwickeln.
Worum soll es gehen? Ich habe lange überlegt. Soll ich was mit Datenbanken machen? Soll ich was mit Netzwerkprogrammierung machen? Soll ich Websitekram machen? Soll ich ein Spiel programmieren? Die Antwort war einfach: Ja. Mein Ziel ist es, einen grafischen Chat zu entwickeln, der mit Avataren in einer künstlichen Welt funktioniert. Da haben wir Spieleentwicklung, Netzwerkentwicklung, Datenbankentwicklung, Protokollentwicklung, eine Website soll es auch geben, es wird spannend. Und da ich mir vor vielen Jahren bereits die Domain KooKooK.org gesichert habe, wird das Projekt jetzt einfach mal so heißen.
Welche Tools eingesetzt werden, kann ich jetzt noch nicht sagen. Es wird auf jeden Fall C++-lastig, wahrscheinlich Qt, weil ich auch mobile Plattformen wie iPhoneOS, iOS und Android unterstützen möchte. Den Code werde ich auf GitHub lagern, so dass ihr mit daran entwickeln könnt.
Und jetzt geht es los. Ich wünsche euch und auch mir viel Spaß dabei.