Seite 1 von 1

QTextEdit->fontPointSize() ergibt 0???

Verfasst: 23. Mai 2009 12:25
von listeman
Hallöchen,

ich habe ein Problem:
Und zwar möchte ich in einem QTextEdit per Slider die Schriftgröße verändern lassen können, doch seltsamerweise scheiter schon die Abfrage nach der aktuellen fontPointSize. Jedenfalls ergibt folgende Abfrage die Ausgabe "0":

Code: Alles auswählen

ui->Ergebnis->setText(QString("%1").arg(ui->Ergebnis->fontPointSize()));
('Ergebnis' ist das QTextEdit)

Doch laut der QT-Hilfe müsste das die Punktgröße zurückgeben, doch Schriftgröße 0 ist nen bissel klein^^

Hat jemand Rat, was ich vielleicht falsch mache?

Grüßle listeman

Verfasst: 25. Mai 2009 10:12
von AuE

Code: Alles auswählen

    ui->Ergebnis->setText(QString("%1").arg(ui->Ergebnis->font().pointSizeF()));

komisch....

Code: Alles auswählen

ui->Ergebnis->setText(QString("Ergebnis mit fontPointSize() %1\n Ergebnis mit .pointSizeF() %2 ")
                          .arg(ui->Ergebnis->fontPointSize())
                          .arg(ui->Ergebnis->font().pointSizeF()));
liefert im output

Ergebnis mit fontPointSize() 0
Ergebnis mit .pointSizeF() 8

Verfasst: 25. Mai 2009 11:58
von listeman
Danke :-)

Die Abfrage mit pointSizeF funktioniert wunderbar... jedoch schaff ich es nicht, die neue Schriftgroesse dann auch wieder zu setzen.

Code: Alles auswählen

ui->Ergebnis->setFontPointSize(neueSchriftgroesse);
aber das zeigt keine Wirkung, es passiert schlichtweg gar nichts...

Und das hier:

Code: Alles auswählen

ui->Ergebnis->font().setPointSizeF(neueSchriftgroesse);
scheiter schon beim Kompilieren mit der Fehlermeldung:
mainwindow.cpp:828: Fehler: Die Übergabe von »const QFont« als »this«-Argument von »void QFont::setPointSizeF(qreal)« streicht Qualifizierer

Aber warum funktioniert die Abfrage aber dann das erneute setzen nicht?

Verfasst: 25. Mai 2009 13:06
von AuE
QFont font = ui->pushButton->font();
font.setPointSize(22);
ui->pushButton->setFont(font);

Verfasst: 25. Mai 2009 14:05
von listeman
Das funktioniert super! :-)

Vielen Dank!!