Seite 1 von 1
problem mit dem ändern der schrifgrösse
Verfasst: 20. März 2007 21:10
von Linuxguru
hallo. ich möchte in einem textedit einfach die schriftgrösse ändern.
das geht ganz gut mit textEdit->setFontPointSize(24);. wenn ich das aber in eine eigene funktion packe, und die grösse erst nach buttonclick geändert werden soll, so hat das keine funktion..
mein code
Code: Alles auswählen
void TestWidget::fontSize()
{
textEdit->setFontPointSize(24);
}
der aufruf
Code: Alles auswählen
textEdit = new QTextEdit(this);
textEdit->setGeometry(10, 220, 780, 370);
QObject::connect(button, SIGNAL(clicked()), this, SLOT(fonSize()));
kann es sein, das wenn ich den button wieder los lasse, die wirkung der funktion auch wieder verloren geht??
danke
Verfasst: 20. März 2007 23:15
von Linuxguru
ich bin schon ein schritt weiter. wenn ich den text mit
Code: Alles auswählen
void TestWidget::fontSize()
{
textEdit->setFontPointSize(24);
textEdit->setText("das ist text 1");
textEdit->setFontPointSize(12);
textEdit->append("das ist text 2");
}
dem buttonereigniss mitschicke, wird der dann auch so eingesetzt.
gibt es mit einer combobox die möglichkeit, die ausgewählte schriftgrösse bei der eingabe im textedit zu verwenden?
erstellen lass ich die combobox so:
Code: Alles auswählen
QComboBox *fontSizeBox = new QComboBox(this);
fontSizeBox->setGeometry(100,20,45,20);
fontSizeBox->addItem("10");
fontSizeBox->addItem("12");
fontSizeBox->addItem("14");
fontSizeBox->addItem("16");
fontSizeBox->addItem("18");
die funktion müsste ich dann also abändern in
Code: Alles auswählen
void TestWidget::fontSize()
{
textEdit->setFontPointSize(comboBox->currentText());
}
da stosse ich schon wieder auf das problem das sich int und string logischerweisse nicht vertragen.
hat jemand eine idee??
danke
Verfasst: 21. März 2007 07:44
von macman
Linuxguru hat geschrieben:hat jemand eine idee??
Von einem Linuxguru hätte ich jetzt aber mehr erwartet, als solch eine Frage
Code: Alles auswählen
void TestWidget::fontSize()
{
textEdit->setFontPointSize(comboBox->currentText().trimmed().toInt());
}
Verfasst: 21. März 2007 21:43
von Linuxguru
kannst du mir sagen, wie man am auto ein motor wechselt??
hehe.. also, danke erstmal. hat mir schon eine ganze ecke weiter geholfen.
ich hab nun meine funktion so modifiziert.
Code: Alles auswählen
void TestWidget::fontSize()
{
textEdit->setFontPointSize(fontSizeBox->currentText().trimmed().toInt());
textEdit->append("");
label->setText(fontSizeBox->currentText());
}
der aufruf erfolgt nun so:
Code: Alles auswählen
QObject::connect(fontSizeBox, SIGNAL(currentIndexChanged(int)), this, SLOT(fontSize()));
das problem ist, das dieses append (senden eines leeren strings) mitgesendet werden muss, damit die änderungen im textedit wirksam werden.
dabei rutscht der cursor auch eine zeile runter und die änderung der schrifgrösse erfolgt erst in der neuen zeile.
gibt es dafür eine lösung?
danke für eure antworten!!!
Verfasst: 22. März 2007 07:23
von macman
Linuxguru hat geschrieben:kannst du mir sagen, wie man am auto ein motor wechselt??
Ja, in meiner Jugend hat man viel am eigenen Auto geschraubt
Linuxguru hat geschrieben:das problem ist, das dieses append (senden eines leeren strings) mitgesendet werden muss, damit die änderungen im textedit wirksam werden.
Ich vermute mal, es funktioniert ähnlich wie in jedem anderen Editor. Änderungen der Textgröße wirken sich auf den selektierten Teil aus oder gelten ab Textende. Hab das nicht probiert, aber so würde ich da rangehen.
Wenn Du es genau wissen willst, guck bei den Demos, nicht bei den Examples. Da gibt es einen Texteditor.
Und reparier deine Shifttaste, sonst wird es schwer mit dem programmieren
