Linien in QTextEdit

Verschiedenes zu Qt
Antworten
Querdenker
Beiträge: 99
Registriert: 1. Dezember 2005 17:44
Wohnort: Karlsruhe

Linien in QTextEdit

Beitrag 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.
e Grüssle au
Q... ;)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Linien in QTextEdit

Beitrag 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.
Querdenker
Beiträge: 99
Registriert: 1. Dezember 2005 17:44
Wohnort: Karlsruhe

Beitrag 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.
e Grüssle au
Q... ;)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Querdenker
Beiträge: 99
Registriert: 1. Dezember 2005 17:44
Wohnort: Karlsruhe

Beitrag 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).
e Grüssle au
Q... ;)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Querdenker
Beiträge: 99
Registriert: 1. Dezember 2005 17:44
Wohnort: Karlsruhe

Beitrag 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.
e Grüssle au
Q... ;)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Querdenker
Beiträge: 99
Registriert: 1. Dezember 2005 17:44
Wohnort: Karlsruhe

Beitrag von Querdenker »

Hi macman,

wo hast Du den das gefunden? Gemeint: supported Html Subset.
Hast Du dafür einen Link :?:
e Grüssle au
Q... ;)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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
Querdenker
Beiträge: 99
Registriert: 1. Dezember 2005 17:44
Wohnort: Karlsruhe

Beitrag 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.
e Grüssle au
Q... ;)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Querdenker
Beiträge: 99
Registriert: 1. Dezember 2005 17:44
Wohnort: Karlsruhe

Beitrag 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.
e Grüssle au
Q... ;)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Die Kommerzversion. Hätte jetzt nicht gedacht das sich in der Doku solche Unterschiede finden.
Antworten