Fach: LF11a – Funktionalität in Anwendungen realisieren Thema: Design Patterns Aufgabe 2 (Kat B): Wiederholung Signale und Slots Eine Klasse Lauftext kann einen Text in regelmäßigen Zeitintervallen um einen Buchstaben verschieben. Beispiel: Hallo → alloH → lloHa → loHal → oHall → Hallo → …. Funktionalitäten der Klasse Lauftext: • im Konstruktor kann man Text und Intervall-Zeit setzen • Text und Intervall-Zeit kann man auch nachträglich setzen • man kann den Lauftext starten und anhalten • nach jedem Zeitintervall wird der aktuell erste Buchstabe dem Text entnommen und hinten wieder angehängt • jede Textänderung wird per Signal verschickt • man kann den Lauftext fragen, ob er gerade läuft • man sich den Text des Lauftextes holen Im folgenden Beispiel-Code kann man die Verwendung sehen: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 FrmMain::FrmMain(QWidget *parent) : QWidget(parent), ui(new Ui::FrmMain) { ui->setupUi(this); lauftext = new Lauftext("Hallo Welt!",100); //lauftext im Header deklariert! connect(lauftext,SIGNAL(textNeu(QString)),this,SLOT(onTextNeu(QString))); ui->label->setText(lauftext->getText()); } FrmMain::~FrmMain() { delete lauftext; delete ui; } void FrmMain::onTextNeu(QString txt) { ui->label->setText(txt); } void FrmMain::on_btnStartStopp_clicked() { if (lauftext->istActiv()) { lauftext->stoppen(); ui->btnStartStopp->setText("Start"); } else { lauftext->starten(); ui->btnStartStopp->setText("Stopp"); } } a) Mehr sehen