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.
Ja, auch unter Redmine gibt es Plugins. Das ist toll, denn so kann man sich das ohnehin schon geniale Redmine weiter erweitern und anpassen. Ich zeige mal am CKEditor, wie man ein Plugin installiert.
Beim CKEditor handelt es sich um einen WYSIWYG-Editor für nahezu alle Textareas von Redmine. Normal sterbliche Benutzer sind damit einfach in der Lage, Texte direkt zu formatieren und die Formatierungen auch zu sehen.
Und wie das funktioniert, sehen wir in diesem Video.
Letztlich ist es einfach. Wir gehen auf unseren Server, auf dem Redmine installiert ist (übrigens: für dieses Plugin braucht man Git (FreeBSD: pkg install git)), wechselt ins Redmine-Plugin-Verzeichnis (FreeBSD: cd /usr/local/www/redmine/plugins) und zieht das zip-Package herunter (FreeBSD: fetch https://github.com/a-ono/redmine_ckeditor/archive/master.zip). Dann wird es entpackt (unzip master.zip) und richtig benannt (mv redmine_ckeditor-master redmine_ckeditor).
Wir wechseln ein Verzeichnis nach oben (cd ..) und führen dann folgende Befehle aus:
Dann starten wir Apache einmal durch (FreeBSD: service apache24 restart) und aktivieren noch den Texteditor unter Administration -> Konfiguration -> Textformatierung = Ckeditor:
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:
WordPress auf FreeBSD zu installieren, ist recht einfach. In diesem Blog-Artikel sowie dem verlinkten Video zeige ich, wie das ganz schnell, einfach und unkompliziert funktionert.
Folgende Voraussetzungen mache ich für dieses Tutorial
Sofern du Apache noch nicht konfiguriert hast, solltest du in der httpd.conf folgendes anpassen:
ServerAdmin
ServerName
vhost-Eintrag einklammern, so dass er benutzt wird (Include etc/apache24/extra/httpd-vhosts.conf)
In meinem Fall steht dort:
ServerAdmin thorsten@tgeppert.de
ServerName wordpress.tgeppert.gg
Include etc/apache24/extra/httpd-vhosts.conf
Als nächstes konfigurieren wir in den VirtualHost (/usr/local/etc/apache24/extra/httpd-vhosts.conf – wenn du produktiv gehst, dann natürlich /usr/local/etc/apache24/extra/httpd-ssl.conf mit Zertifikaten!):
<VirtualHost *:80>
ServerAdmin thorsten@tgeppert.de
DocumentRoot /usr/local/www/wordpress
ServerName wordpress.tgeppert.gg
DirectoryIndex index.php
AddType application/x-httpd-php .php
<Directory /usr/local/www/wordpress>
Options ExecCGI Includes FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog "/var/log/wordpress.tgeppert.gg-error_log"
CustomLog "/var/log/wordpress.tgeppert.gg-access_log" common
</VirtualHost>
Wir starten dann noch den Apache einmal oder einmal neu (denke daran: /etc/rc.conf <- apache24_enable=“YES“):
service apache24 start ODER service apache24 restart
Dann kannst du mit dem Webbrowser bereits die URL (in meinem Fall http://wordpress.tgeppert.gg) aufrufen und WordPress konfigurieren.
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.