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.
Nachdem wir einfach ein paar Komponenten in unser Programm gezogen haben, sollten wir beginnen, mit Layouts zu arbeiten. Ich zeige kurz, wie man das bei unserem Programm macht. Dabei zeige ich auch, wie man Spacer benutzt.
Wir beschäftigen uns mit ganz einfachen Layouts. Die ersten Erfolge kommen schnell: der Inhalt des Formulars wächst und schrumpft beim Vergrößern oder Verkleinern des Dialogs.
Als Projektmanagementtool setze ich seit einiger Zeit bereits Redmine ein und ich bin immer noch begeistert davon, weswegen wir es auch in diesem Projekt benutzen werden. In diesem Video zeige ich, wie ich das KooKooK-Projekt in Redmine anlege.
Willkommen zum dreiteiligen Workshop: Redmine 4. Ich habe mir überlegt, ich mache einen kleinen Redmine-Einsteigerkurs. Dieser geht über drei Kapitel:
Redmine 4 installieren (in meinem Fall auf FreeBSD 13)
Redmine 4 für Administratoren (GUI)
Redmine 4 für Benutzer (GUI)
In diesem Video und Blog-Artikel geht es darum, wie man Redmine einfach installieren kann. Ich setze dafür folgendes voraus:
Du hast ein lauffähiges und vollständig gepatchtes FreeBSD 13 (oder neuer)
Du hast einen lauffähigen PostgreSQL-Server (wie das geht, erfährst du hier und hier)
Nameservereinträge sind bereits vorhanden (in meinem Fall heißt mein Host redmine.gug-it.gg, welchen ich hier auch in der Beschreibung überall nutze. Das musst du natürlich anpassen!)
So wird es gemacht
Erstelle einen Datenbankbenutzer. Wie das bei deiner PostgreSQL-Version geht, entnimmst du den Manuals. Achte darauf, dem Benutzer ein verschlüsseltes Kennwort zu geben. Ich habe noch ein (uraltes) PostgreSQL 9.5 auf meiner Testmaschine laufen (du solltest hoffentlich was neueres haben), und da geht es so:
createuser -E -P redmine
Dann erstellst du noch die Datenbank, was bei mir so geht:
createdb -E unicode -O redmine redmine
und vergisst natürlich nicht den Eintrag in der pg_hba.conf
host redmine redmine 192.168.0.168/24 password
Denke daran, Datenbanknamen, Datenbankbenutzer und IP anzupassen!
Ich nutze Apache in der Version 2.4. Wenn du was anderes benutzt, dann musst du leider schauen, wie du es ans Rennen bekommst. Ich installiere also alle benötigten Pakete:
In der httpd.conf (/usr/local/etc/apache24) setzt du, wenn du es noch nicht getan hast, den Servernamen sowie die E-Mail-Adresse (wobei die auch im VHost eingerichtet wird). Weiterhin entfernst du bei den Zeilen:
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
LoadModule fastcgi_module libexec/apache24/mod_fastcgi.so
Include etc/apache24/extra/httpd-vhosts.conf
die Raute (#) vorne, so dass die Zeilen genutzt werden innerhalb der Konfiguation. Und der aufmerksame Leser weiß es: ich nutze hier jetzt im Beispiel kein SSL! Bitte mache das, und mache das auf jeden Fall, wenn Redmine im Internet hängt! Das wäre jetzt einfach nur zu aufwendig für das Tutorial.
Server-Kram liegt bei mir unter /server. Web-Kram dementsprechend unter /server/web/<sld>/<t(hird)ld>. Passe die Konfiguration bei dir an. Dementsprechend richte ich das Verzeichnis folgendermaßen ein:
Dann bearbeite ich die Datei /usr/local/etc/apache24/extra/httpd-vhosts.conf (du hoffentlich /usr/local/etc/apache24/extra/httpd-ssl.conf). Da füge ich folgenden Eintrag hinzu:
Die bearbeiten wir dann mit dem Editor unserer Wahl und geben die richtigen Daten ein:
production:
adapter: postgresql
database: redmine
host: thorsten.jails.gug-it.gg
username: redmine
password: "redmine"
# Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
encoding: utf8
Nicht vergessen, ich nutze PostgreSQL. Wenn du MySQL oder anderes nutzt, musst du das natürlich beachten! Mein Datenbankserver liegt auf „thorsten.jails.gug-it.gg“.
Als nächstes müssen wir noch ein paar Module zu unserem Redmine hinzufügen. Wir erstellen im Verzeichnis /usr/local/www/redmine die Datei Gemfile.local mit folgendem Inhalt:
und trage dann in usr/local/www/redmine/config/configuration.yml folgendes ein:
attachments_storage_path: /server/files/redmin
Ich lasse an dieser Stelle die E-Mail-Konfiguration mal aus, weil das recht spezifisch ist. Kommt ganz darauf an, was du brauchst, aber schau dir die Konfigurationsdatei einmal an und du wirst schnell verstehen, wie das funktioniert.
Wenn wir dann Apache starten (oder neustarten), können wir auf Redmine zugreifen. Die Standardzugangsdaten lauten:
Benutzername: admin, Kennwort: admin
Du wirst direkt aufgefordert, dein Kennwort zu ändern. Jetzt kannst du direkt loslegen.
Lange habe ich überlegt, ob ich nicht eine Video-Reihe zu FreeBSD machen sollte, da ich im deutschsprachigen Bereich nichts aktuelles und vollständiges kenne.
Ich beginne hier einmal mit der Reihe und stelle vor, was ich vorhabe.