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.

Ich möchte als DBMS (Datenbankmanagementsystem) PostgreSQL installieren, weswegen ich das hier installiere. Wie man das auf FreeBSD generell installieren kann, zeigt dieses Video: https://youtu.be/g44uOiUKrUY (https://www.tgeppert.de/2022/01/18/youtube-video-kurztipp-installation-von-postgresql-auf-freebsd/).
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.
Da die Serverkomponente unseres Projekts tatsächlich auf einem Server laufen soll und wir auch noch einen Datenbankserver brauchen, richte ich in diesem Video ein Jail auf FreeBSD dafür ein.
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.
Abgesehen von der Website für dieses Projekt, die wir später einrichten, müssen wir noch den E-Mail-Server einrichten (Domain, virtusertable, usw.) und das Postfach im E-Mail-Programm einrichten (Thunderbird).
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);
Ich erkläre einmal kurz meine Netzwerkinfrastruktur und zeige, wie und wo Daten gesichert werden.
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.
Man kann in Redmine bsplw. innerhalb von Tickets auf Commits verlinken. Deshalb richte ich das Repository von KooKooK auf GitHub in Redmine ein.