QTextCursor? QT:3.3.6

Alles rund um die Programmierung mit Qt
Antworten
whit3
Beiträge: 42
Registriert: 1. Februar 2010 09:55

QTextCursor? QT:3.3.6

Beitrag von whit3 »

Was ist dieses QTextCursor...
Es geht darum:

Ich brauche den QPoint oder Vergleichbares von dem Textcursor (das blinkende Ding :lol:) in einem QTextEdit.

Jedoch finde ich keinerlei Information zu QTextCursor, obwohl mein Objekt (QTextEdit) die Funktion

Code: Alles auswählen

QTextCursor * textCursor () const
existiert und auch in der Hilfe beschrieben ist :?: :?: :?:

Der Sinn des Ganzen ist es, eine QListBox zu öffnen an der Stelle des Cursors.

Momentan kann ich leider nur die PixelPosition eines Paragraphen ermitteln, was aber nicht reicht... da die Box immer am Anfang (x) aufgeht.

Code: Alles auswählen

//CodeEditor ist ein QTextEdit
//completion ist die QListBox

void CodeEditor::fillList()
{	
	int a,b;
	getCursorPosition(&a,&b);
	QTextCursor ahhhhhh = this->textCursor();
	QRect paraGeo = paragraphRect(a);
	int x1,y1,x2,y2;
	paraGeo.coords(&x1,&y1,&x2,&y2);
	completion->setGeometry(x1,(y2-y1)+2,100,100);
	completion->show();	
}
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Warning: QTextCursor is not in the public API, but in special circumstances you might wish to use it.
Tja, da würde ich mal die Sourcen von Qt bemühen.
whit3
Beiträge: 42
Registriert: 1. Februar 2010 09:55

Beitrag von whit3 »

Code: Alles auswählen

int a,b, x1,y1,x2,y2;

getCursorPosition(&a,&b);
QRect paraGeo = paragraphRect(a);

paraGeo.coords(&x1,&y1,&x2,&y2);
completion->setGeometry(x,(y2+4),100,100);	

completion->show();
So funktioniert das Anzeigen auf der Y-Achse ja tadelos - aber wie kann ich den Index des Zeichens im Paragraph auf Pixel umrechnen. So dass, die QListBox hinter dem letzten eingegebenen Buchstaben erscheint.
Ich denke ich brauch den QTextCursor garnicht...
Upsala hast du vllt eine Idee?
Zuletzt geändert von whit3 am 3. März 2011 09:14, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Nein.
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Beitrag von Troll.Soft »

Es gibt die umgekehrte Funktion:

Code: Alles auswählen

QTextCursor QTextEdit::cursorForPosition ( const QPoint & pos ) const
und es fand sich diese Funktion:

Code: Alles auswählen

QRect QTextEdit::cursorRect () const
returns a rectangle (in viewport coordinates) that includes the cursor of the text edit.
habe beide Funktionen noch nie benutzt, würde sie aber in Deinem Fall mal testen :)
tschüß
Troll.Soft
Antworten