2016-04-19 9 views
0

Ich habe eine kleine Qt/C++ - Anwendung mit einem QTextEdit, die einen Text hochlädt. Ich möchte in der Lage sein, mit dem Cursor ein separates Wort auszuwählen und seine Position im Text zu erhalten.Wählen Sie ein Wort mit dem Cursor und seine Position in Qt/C++

Zum Beispiel im folgenden Satz: "Es ist ein sonniger Tag". Wenn ich das Wort 'sonnig' auswähle, bekomme ich die int 4, da es an der 4. Stelle im Satz steht.

Wie kann ich das erreichen?

+0

Was ist ein QTextField? Es gibt keine solche Sache in Qt – jpo38

+0

meine Schuld, ich meine nur einige Textbereich, der Text hochlädt – Joe

+0

Sie müssen angeben, welches Objekt: QLabel, QTextEdit, QTextBrowser? – jpo38

Antwort

1

werden Sie müssen:

  1. Verwenden QTextEdit.textCursor()->selectionEnd() wissen Feld des Text als QString mit QTextEdit::text() Methode Get wo Auswahl endet.

  2. Verwenden QString::mid den Teil von 0 bis Ende der Auswahl

  3. Verwenden QString::count zu wissen, wie viele Räume es enthält zu bekommen. Dadurch erhalten Sie Zugriff auf die Position des Wortes.

Etwas wie:

textEdit.text().mid(0, textEdit.textCursor()->selectionEnd()).count(' ')+1; 

Hoffe, es hilft. Das ist minimal, Sie werden wahrscheinlich mit partieller Wortauswahl oder anderen relevanten Eckfällen umgehen wollen.

+0

vielen Dank. werde es versuchen) – Joe

+0

ich denke, es ist nicht genau das, was ich will. 1. Ich möchte ein Wort aus dem Text wählen 2. Wählen Sie es in der QTextEdit, indem Sie darauf klicken Sie zum Beispiel 3. Holen Sie sich die genaue Position dieses Wortes, auch wenn es 2 oder mehr similair Wörter im Text – Joe

+0

@ Joe: Es ist jetzt klarer, habe meinen Beitrag bearbeitet – jpo38

Verwandte Themen