C++ Qt --> QTextEdit in String einlesen

Ghost_Rider_R

Lt. Junior Grade
Dabei seit
Nov. 2009
Beiträge
412
Hallo miteinander,

als Java Umsteiger wollte ich ein Simples Textfeld auslesen (QTextEdit) und in eine Stringvariable speichern.
Leider stellt mich dies schon vor ein größeres Problem. Wie macht man das?

So was kleines und doch schier unlösbar :o

Danke und Grüße Ruff :)
 

Age.

Lt. Junior Grade
Dabei seit
Juni 2005
Beiträge
276
Hi,

QTextEdit implementiert QTextDocument als Datenstruktur.

Diese wiederum bietet die Methode toPlainText.

Also sollte der Code irgendwie so aussehen:
Code:
QString deineStringVariable = deinQTextEditObjekt->document->toPlainText();
Ob das funktioniert oder die schönste Methode ist kann ich dir allerdings leider nicht sagen ^^
 

Ghost_Rider_R

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Nov. 2009
Beiträge
412
...ja nur ich würde das ganze gerne in einer normalen Stringvariable speichern.

Also String ichbineinstring = ... irgendwas

An sowas hab ich gedacht, wenn das geht... so ähnlich siehts zumindest in Java aus :rolleyes:
 

Andy123

Lt. Junior Grade
Dabei seit
Aug. 2004
Beiträge
392
std::string x = deineStringVariable.toStdString()
 

antred

Lt. Commander
Dabei seit
Juni 2010
Beiträge
1.288
Was meinst du mit "normalen" String? Ist dir QString nicht normal genug? Fall du einen std::string meinst ...

Code:
std::string ichbineinstring = deinQTextEditObjekt->document->toPlainText().toStdString();
Ein bißchen Doku lesen muß man schon können.
 

Age.

Lt. Junior Grade
Dabei seit
Juni 2005
Beiträge
276
Also ein String im Standardcontainer?
Wenn du sowieso mit Qt arbeitest sehe ich den Sinn da nicht wirklich, aber QString bietet dafür die Methode toStdString().

"String" gibt es in "reinem" C++ nicht als Datentyp. (Das was am nächsten dran wäre ist wohl ein char* ) Und solltest du die Standardbibliothek verwenden wird es über dieses Template realisiert.


"Normaler" als ein QString wird es also nicht wirklich und dieser sollte dir vermutlich auch jeden Wunsch erfüllen.
 

Fortatus

Lt. Commander
Dabei seit
Juni 2009
Beiträge
1.284
"String" gibt es in "reinem" C++ nicht als Datentyp. (Das was am nächsten dran wäre ist wohl ein char* ) Und solltest du die Standardbibliothek verwenden wird es über dieses Template realisiert.


"Normaler" als ein QString wird es also nicht wirklich und dieser sollte dir vermutlich auch jeden Wunsch erfüllen.
Die C++-Standardbibliothek ist auch standardisiert und ist Teil des gesamten C++-Standards. Guck mal hier rein:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf
Seite 601 ist die Definition des Strings. Wenn irgendjemand einen C++-Compiler baut, dann muss er String so implementieren, wie es da steht. Ob er dann Clang, Visual C++ oder GCC nimmt, ist schnuppe. Es ist sehr sinnvoll sich an die Grundstandards zu halten, wenn es möglich ist. So ist er auch unabhängig von Änderungen oder Fehlern in Qt.
 

antred

Lt. Commander
Dabei seit
Juni 2010
Beiträge
1.288
Aber es ist in C++ anders als z.B. int, float und bool kein intrinsischer Datentyp, und das ist es, was Age ausdrücken wollte, vermute ich mal.
 

Ghost_Rider_R

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Nov. 2009
Beiträge
412
...wo ist denn der konkrete Unterschied zwischen einem String und einem QString?

Ich kenn aus JAVA nur die Klasse String, welche einfach als ganz normale Zeichenkette
dient und mehr brauch ich ja eig. auch nicht...
 
Top