Revision as of 04:13, 11 October 2012 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Archived:Calculating text width in Qt

From Nokia Developer Wiki
Jump to: navigation, search

Archived.pngArchived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.

Qt Quick should be used for all UI development on mobile devices. The approach described in this article (using C++ for the Qt app UI) is deprecated.

Article Metadata
Code ExampleTested with
Devices(s): Nokia 5800 XpressMusic
Platform(s): S60 3rd Edition, FP1, FP2
S60 5th Edition
Keywords: QFontMetrics, QFont
Created: tepaa (26 Mar 2009)
Last edited: hamishwillee (11 Oct 2012)



This code snippets shows how to use the QFont and QFontMetrics classes to draw a string into the center of the screen and to get the string height and width in pixels.


Source code

  • This source code centers the text and sets the text colour.
void QMyWidget::paintEvent(QPaintEvent*)
QPainter painter(this);
// Create font
QFont f("Helvetica",20);
// Set current font
// Set font color
// Get QFontMetrics reference
QFontMetrics fm = painter.fontMetrics();
QString text = "helloworld";
// Calculate text center position into the screen using QFontMetrics class
QPoint center = QPoint( ( width()-fm.width(text))/2,
( height() - fm.height())/2 );
// QFontMetrics::width() gives calculated text width with current QFont in QPainter
// QFontMetrics::height() gives text height


The text is centered on the screen.

The code example can be found at File:HelloworldNew.zip

This page was last modified on 11 October 2012, at 04:13.
327 page views in the last 30 days.