Seite 1 von 1

Signals and Slots - Wie endlosschleife unterbinden?

Verfasst: 11. Januar 2010 17:49
von Weedjo
Hey,

kurz eine Frage:

Ich habe zwei QTextEdit-Felder, in denen Text parallel markiert werden soll. Wenn ich also in Textfeld 1 was markiere, soll bei 2 auch was markiert werden und andersherum. Allerdings aufgrund von leerzeichen nicht an der gleichen Stelle!


Mein Slot wird mit "SIGNAL(selectionChanged())" aus beiden Textfelder connected und sieht aktuell so aus:

Code: Alles auswählen

void MainWindow::markierung_synchronisieren(){

 
    if(ui->AusgabeHex->textCursor().hasSelection())
    {
        qDebug() << "synchronisieren hex-clear;" <<endl;
        //Hex zu Clear

        int a = ui->AusgabeHex->textCursor().selectionStart();
        int b = ui->AusgabeHex->textCursor().selectionEnd();

        QTextCursor clearCursor = ui->AusgabeClear->textCursor();
        clearCursor.setPosition((a+2)/3);
        clearCursor.setPosition(((b+2)/3),QTextCursor::KeepAnchor);
        ui->AusgabeClear->setTextCursor(clearCursor);
        

    }

    else if(ui->AusgabeClear->textCursor().hasSelection())
    {
          //analog zu oben
    }

Danke für eure hilfe!

Verfasst: 11. Januar 2010 18:00
von upsala
Es gibt jede Menge möglichkeiten:

1. Wenn die Cursor schon auf der Position sind, wo sie hinsollen, die Funktion abbrechen.
2. Merk dir, das du gerade am markieren bist und ignorier das 2. Signal
3. Signale blockieren