ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
406
406
EMPFEHLEN
-
27.11.11 12:47 #1
- Registriert seit
- Jul 2011
- Beiträge
- 11
Hallo liebe Community!
Ich bin noch ein Frischling was das Qt-SDK betrifft und stehe vor einen kleinem Problem. Es geht um die Synchronisation mittels Signal and Slot zwischen zwei QTextEdits.
Ich habe zwei Fenster (sind auch zwei Klassen). Das was in dem einem Fenster passiert soll auch im anderen Fenster passieren.
Slider, DateTimeEdit, LineEdit is ohne Probleme gegangen. Nur das QTextEdit will nicht.
Ich hab schon alles mögliche wie z.Bsp.
Code :1
QObject::connect(w.getTextField(), SIGNAL(textChanged(QString)), x.getTextField(), SLOT(setText(QString)));
probiert, aber nichts will funktionieren. Kann mich bitte jemand über die Eigenheiten von diesem bockigen Textfeld aufklären?
Vielen Dank schon mal im Vorraus für Eure Hilfe.
Daniel
-
Möchtest du das wirklich mit connect() machen? Benutzt auch den Qt Creator oder nur die libs?
Wie sieht der Code aus?
Hast du es schon mal mit QString s = ui->TextEdit->text(); versucht?
cwriterIntel inside - Idiot outside :-)
Ich schreibe in C und bin Anfänger.
______________________________
Falls ich eines Tages einen guten Beitrag schreiben werde, bitte bewerten und/oder Danke sagen.
Danke
-
28.11.11 07:59 #3
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Soweit ich das sehe gibt es kein textChanged(QString) Signal bei QTextEdit. Hast du das evtl. mit QLineEdit verwechselt?
Erhältst du denn keine Warnung auf der Konsole?
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hallo pYroman1ac,
das textChanged()-Signal bei QTextEdit hat keinen Parameter. Du kannst also auf diese Weise nicht den geänderten Text übergeben. sondern musst ihn nach Auslösen des Events noch explizit mit der text()-Methode vom jeweils anderen Textfeld abholen.
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
29.11.11 10:29 #5
- Registriert seit
- Jul 2011
- Beiträge
- 11
Hallöchen nochmal!
Vielen Dank für eure Antworten! Ich habe mir jetzt eine eigene Klasse mit eigenen Slots geschrieben. Ich möchte euch meine Lösung natürlich nicht vorenthalten! Konstruktive Kritik ist natürlich gerne gesehen!
TextSynchronizer.h
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#ifndef TEXTSYNCHRONIZER_H #define TEXTSYNCHRONIZER_H #include <QObject> #include <QTextEdit> class TextSynchronizer : public QObject { Q_OBJECT QTextEdit *mainwindow, *secondwindow; public: explicit TextSynchronizer(QObject *parent = 0, QTextEdit *mainwindow = 0, QTextEdit *secondwindow = 0); public slots: void fromAtoB(); void fromBtoA(); }; #endif // TEXTSYNCHRONIZER_H
TextSynchronizer.cpp:
Code :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
#include "textsynchronizer.h" #include <cassert> TextSynchronizer::TextSynchronizer(QObject *parent, QTextEdit *mainwindow, QTextEdit *secondwindow ) : QObject(parent), mainwindow(mainwindow), secondwindow(secondwindow) { assert(mainwindow != 0); assert(secondwindow != 0); connect(mainwindow, SIGNAL(textChanged()), this, SLOT(fromAtoB())); connect(secondwindow, SIGNAL(textChanged()), this, SLOT(fromBtoA())); } void TextSynchronizer::fromAtoB() { secondwindow->blockSignals(true); secondwindow->setPlainText(mainwindow->toPlainText()); secondwindow->blockSignals(false); } void TextSynchronizer::fromBtoA() { mainwindow->blockSignals(true); mainwindow->setPlainText(secondwindow->toPlainText()); mainwindow->blockSignals(false); }
Aufruf in der main:
Code :1 2 3 4 5 6 7 8
QApplication a(argc, argv); MainWindow w; SecondWindow x; QTextEdit *text1 = w.getTextField(); QTextEdit *text2 = x.getTextField(); TextSynchronizer tsync(&a, text1, text2); QObject::connect(w.getTextField(), SIGNAL(textChanged()), &tsync, SLOT(fromAtoB()));
Vielleicht kann das ja jemand mal brauchen
Lg
Daniel
Ähnliche Themen
-
MySQL - Zwei Beziehungen zwischen zwei Tabellen
Von suevas im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 21.03.11, 16:18 -
Sync zwischen sound und movie
Von svisseroo im Forum Flash PlattformAntworten: 2Letzter Beitrag: 24.02.09, 09:10 -
Mit substr zwischen Satz zwischen zwei Wörtern trennen
Von juhuhuhuhu im Forum PHPAntworten: 7Letzter Beitrag: 13.04.07, 11:25 -
Modellierung von zwei Beziehungen zwischen zwei Klassen in Hibernate
Von janw im Forum JavaAntworten: 1Letzter Beitrag: 26.05.06, 13:24 -
Sync. zwischen Outlook auf PC und Notebook
Von TypischerStudent im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 10.12.03, 18:05





Zitieren
Login






