Seite 1 von 1

Linien in QTextEdit

Verfasst: 27. Februar 2006 15:05
von Querdenker
Hi,

ich habe eine starke Überschrift in einem QTextEdit 8)
Jetzt möchte ich unter das Ganze eigentlich nur einen schmalen
horizontalen Strich setzen. Daran sitze ich nun seit Stunden ohne
nennenswerten Erfolg :oops:

Wie geht das? Wie es mit html geht ist klar, aber wie mit Plaintext? Und: Ich behandle jedes Char darin, nicht den kompletten Text.

Re: Linien in QTextEdit

Verfasst: 27. Februar 2006 16:26
von macman
Das ist Plaintext, da gibt es keine Schriftattribute. Nimm HTML oder lass es :-) Du kannst ja intern HTML nehmen, muß nach aussen doch gar nicht sichtbar sein.

Verfasst: 27. Februar 2006 16:53
von Querdenker
Hi macman,

ich muss doch auf dieses Widget, in diesen Devicekontext wenigstens mit QPainter ne Linie ziehen können. Ferner unterstützt QTextEdit() sowas wie Shapes. Und da gibt es auch eine Type namens: HLine.
Niergendwo aber ein Beispiel, wie man diese Dinge ansetzt.

Verfasst: 28. Februar 2006 07:14
von macman
Querdenker hat geschrieben:ich muss doch auf dieses Widget, in diesen Devicekontext wenigstens mit QPainter ne Linie ziehen können.
Von hinten durch die Brust ins Auge. Du könntest das paintEvent überschreiben und da soviel malen wie Du willst.
Querdenker hat geschrieben:Ferner unterstützt QTextEdit() sowas wie Shapes. Und da gibt es auch eine Type namens: HLine.
Das sind 2 Vererbungen von QFrame und die beziehen sich wohl auf das Design des Rahmens.

Ich weiß ja nicht genau was es werden soll, aber ich würde es wohl mit HTML realisieren. Alles andere scheint mir zu komplex. Allein der Aufwand Anfang und Ende der Linie zu berechnen, was es da zu beachten gibt, Zeilenumbruch usw.

Verfasst: 28. Februar 2006 10:58
von Querdenker
Hi macman,

am Anfang hatte ich ja fast alles mit Html, jedoch war der Ausdruck über document()->print() fürchterlich. Die Linien <hr> waren hauchdünne, kaum sichtbare Linien, von der Tabelle, die ja auch noch hinzukommen soll, will ich mal gar nicht reden *seufz*. Es nützt auch nichts die Ränder zu verstärken etc.
Das Probl. ist also, nicht nur das die Sachen im Widget sichtbar sein sollen, sondern dass auch noch alles brav über den Printer laufen muss (wysiwyg).

Verfasst: 28. Februar 2006 13:02
von macman
<hr> lassen sich mit size verdicken, was aber leider nicht von Qt unterstützt wird. Aber wie willst Du denn ohne HTML Tabellen in ein QTextEdit bringen? Wenn es kein QTextEdit sein muß, dann wärst Du wohl am besten beraten deine eigene WYSIWYG-Klasse zu schreiben, die den Inhalt entweder auf ein QFrame malt oder eben den Drucker.

Verfasst: 28. Februar 2006 16:53
von Querdenker
Hi

Tabellen, das geht. Dafür hat Trolltech auch ein Beispiel für QTextEdit. Aber ein stinknormale horizontale Linie - da scheiden sich die Geister.
Ich sitze nun schon mehr als 1 Tag an dem Problem.

Verfasst: 1. März 2006 07:46
von macman
Hab mir das 'Supported HTML Subset' angeschaut. Tabellen gehen, Linien auch, nur sind sie Dir nicht dick genug. Da bleibt dir wohl nichts anderes übrig als das paintEvent vom TextEdit zu überschreiben.

Verfasst: 1. März 2006 10:51
von Querdenker
Hi macman,

wo hast Du den das gefunden? Gemeint: supported Html Subset.
Hast Du dafür einen Link :?:

Verfasst: 1. März 2006 12:03
von macman
Steht in der Doku, lesen bildet :-) Guckst Du unter QTextEdit::toHtml() oder hier http://doc.trolltech.com/4.1/richtext-html-subset.html

Verfasst: 1. März 2006 15:57
von Querdenker
Hi

Steht in der Doku, lesen bildet

Wenn es darin steht ja. Nur in QTextEdit::toHtml steht nichts davon!

Nur:

toHtml() returns the text of the text edit ... bla
Und damit hat es sich's.

Verfasst: 2. März 2006 07:16
von macman
Also bei mir steht es so:
html : QString

This property provides an HTML interface to the text of the text edit.
  • toHtml() returns the text of the text edit as html.
    setHtml() changes the text of the text edit. Any previous text is removed. The input text is interpreted as rich text in html format.
Note that the undo/redo history is cleared by calling setHtml().

Access functions:

QString toHtml () const

void setHtml ( const QString & text )

See also Supported HTML Subset.
Wobei das letzte ein entsprechender Link ist.

Verfasst: 2. März 2006 20:49
von Querdenker
Dann hast ne andere Version.

ich lese das hier:

Code: Alles auswählen

html : QString
This property provides an HTML interface to the text of the text edit.
toHtml() returns the text of the text edit as html.
setHtml() changes the text of the text edit. Any previous text is removed. The input text is interpreted as rich text in html format.
Note that the undo/redo history is cleared by calling setHtml().
Access functions:
QString toHtml () const
void setHtml ( const QString & text )
lineWrapColumnOrWidth : int
This property holds the position (in pixels or columns depending on the wrap mode) where text will be wrapped.
If the wrap mode is FixedPixelWidth, the value is the number of pixels from the left edge of the text edit at which text should be wrapped. If the wrap mode is FixedColumnWidth, the value is the column number (in character columns) from the left edge of the text edit at which text should be wrapped.
Access functions:
int lineWrapColumnOrWidth () const
void setLineWrapColumnOrWidth ( int w )
See also lineWrapMode.
lineWrapMode : LineWrapMode
In Bezug auf das was Qt an html tatsächlich supportet also extrem vielsagend, wir steigen aus -10000.

Verfasst: 3. März 2006 07:35
von macman
Die Kommerzversion. Hätte jetzt nicht gedacht das sich in der Doku solche Unterschiede finden.