Um die Schrift in einem QTextEdit immer vertikalanpassen zu können möchte ich das QTextDocument aus dem QTextEdit variieren.
textEdit_1 deklariere ich als Zeiger und initialiesiere Ihn im Constructor der aufrufenden Klasse.
int val = 15;
QTextDocument *tmpDocument1 = new QTextDocument;
tmpDocument1 = textEdit_1->document();
QTextFrame *tmpRootFormat1 = new QTextFrame(tmpDocument1);
tmpRootFormat1 = tmpDocument1->rootFrame();
QTextFrameFormat tmpTextFormat1 = tmpRootFormat1->frameFormat();
tmpTextFormat1.setTopMargin(val);
tmpRootFormat1->setFrameFormat(tmpTextFormat1);
Leider funktioniert dies nur im Constructor der beinhaltenden Klasse.
Bei Aufruf des Blockes in einer Funktion z.B. wenn val durch eine SpinBox gesetzt wird, bleicbt das QTextEdit Fenster unverändert.
vertikale Anpasuung der Schrift im QTextEdit
-
StefanQtNutzer
- Beiträge: 12
- Registriert: 1. Dezember 2010 11:54
-
StefanQtNutzer
- Beiträge: 12
- Registriert: 1. Dezember 2010 11:54
Ich will das QTextEdit als Eingabe Fenster benutzen bei konstanter erscheinung. die Höhe und Breite soll konstant bleiben. Auch die background-color.
Der eingegebne Text soll immer in x- und y- Richtung zentralisiert sein.
In x-Richtung geht dies problemlos durch das setzen von dem Alignment:
QTextDocument *tmpDocument = new QTextDocument;
QTextOption tmpOptions ;
tmpDocument = textEdit_1->document();
tmpOptions = tmpDocument->defaultTextOption();
tmpOptions.setAlignment( Qt::AlignHCenter);
tmpDocument->setDefaultTextOption(tmpOptions);
Die Anpassung in y-Richutng stellt sich dar schwieriger dar. Da ich keine automatische Anpssung gefunden habe sollte die Anpassung manuell erfolgen. Dafür wollte ich das im QTextEdit befindliche QTextFrame vom QTextDocument benutzen. Denn den RootFrame kann man in der Höhe vestellen, in dem die TopMargin() geändert wird.
Der eingegebne Text soll immer in x- und y- Richtung zentralisiert sein.
In x-Richtung geht dies problemlos durch das setzen von dem Alignment:
QTextDocument *tmpDocument = new QTextDocument;
QTextOption tmpOptions ;
tmpDocument = textEdit_1->document();
tmpOptions = tmpDocument->defaultTextOption();
tmpOptions.setAlignment( Qt::AlignHCenter);
tmpDocument->setDefaultTextOption(tmpOptions);
Die Anpassung in y-Richutng stellt sich dar schwieriger dar. Da ich keine automatische Anpssung gefunden habe sollte die Anpassung manuell erfolgen. Dafür wollte ich das im QTextEdit befindliche QTextFrame vom QTextDocument benutzen. Denn den RootFrame kann man in der Höhe vestellen, in dem die TopMargin() geändert wird.
Ich weiß zwar nicht für was dieses Vertikale Zentrieren sinnvoll sein soll (aus Usersicht empfände ich das grausam, vor allem wenn nach jedem Input automatisch zentriert wird, und ich eigentlich den Output lesen will...).
Aber ein Lösungsansatz wäre, die ScrollBar des TextEdits per Code in die Mitte zu scrollen.
Aber ein Lösungsansatz wäre, die ScrollBar des TextEdits per Code in die Mitte zu scrollen.
-
StefanQtNutzer
- Beiträge: 12
- Registriert: 1. Dezember 2010 11:54
Das Feld dient zur Gestaltung des Feldes, das vom QTextEdit eingenomme n wird. Der User soll dem ganzel noch eine Beschriftung geben. Toll wäre es dann wenn die Schrift geleich zentriert ist. So das der User nichts machen muss...
Der Benutzer soll sozusagen einen Button mit Text gestalten. Wobei in Schriftgröße und Anzahl der zu beschriftenden Zeilen vom Benutzer Abhängt.
Die Idee mit der Scrolbar ist eine gute Idee, der ich mal nachgehen werde.
Der Benutzer soll sozusagen einen Button mit Text gestalten. Wobei in Schriftgröße und Anzahl der zu beschriftenden Zeilen vom Benutzer Abhängt.
Die Idee mit der Scrolbar ist eine gute Idee, der ich mal nachgehen werde.
-
StefanQtNutzer
- Beiträge: 12
- Registriert: 1. Dezember 2010 11:54