Signals and Slots - Wie endlosschleife unterbinden?

Alles rund um die Programmierung mit Qt
Antworten
Weedjo
Beiträge: 5
Registriert: 17. August 2009 11:16

Signals and Slots - Wie endlosschleife unterbinden?

Beitrag 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!
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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
Antworten