craiyon logo

A vibrant, futuristic circuit board background with glowing blue and orange lines. Large white and orange text reads 'LAUFTEXT', 'Hallo Welt!', 'alloH Welt!', and 'lloHa Welt!'. Two transparent overlays display lines of code.

A vibrant, futuristic circuit board background with glowing blue and orange lines. Large white and orange text reads 'LAUFTEXT', 'Hallo Welt!', 'alloH Welt!', and 'lloHa Welt!'. Two transparent overlays display lines of code.

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