Archived:Calculating text width in Qt
hamishwillee
(Talk | contribs) m (Added category Category:Symbian. (Preparing for ontology change)) |
hamishwillee
(Talk | contribs) m (Remove platform specifier categories (only need specifier for Qt if there is some platform specific behaviour)) |
||
| Line 1: | Line 1: | ||
| + | [[Category:Qt]][[Category:UI]] | ||
{{KBCS}} | {{KBCS}} | ||
{{CodeSnippet | {{CodeSnippet | ||
| Line 4: | Line 5: | ||
|platform=S60 3rd Edition, FP1, FP2<br>S60 5th Edition | |platform=S60 3rd Edition, FP1, FP2<br>S60 5th Edition | ||
|devices=Nokia 5800 XpressMusic | |devices=Nokia 5800 XpressMusic | ||
| − | |category=Qt | + | |category=Qt |
|subcategory=UI | |subcategory=UI | ||
|creationdate=April 29, 2009 | |creationdate=April 29, 2009 | ||
| Line 13: | Line 14: | ||
This code snippets shows how to use the <tt>QFont</tt> and <tt>QFontMetrics</tt> classes to draw a string into the center of the screen and to get the string height and width in pixels. | This code snippets shows how to use the <tt>QFont</tt> and <tt>QFontMetrics</tt> classes to draw a string into the center of the screen and to get the string height and width in pixels. | ||
| − | |||
| − | |||
| − | |||
==Preconditions== | ==Preconditions== | ||
| − | * Install | + | * Install [[Nokia Qt SDK]] |
| − | + | ||
| − | + | ||
==Source code== | ==Source code== | ||
| Line 61: | Line 57: | ||
| − | + | [[Category:Code Examples]][[Category:Code Snippet]] | |
Revision as of 09:56, 4 April 2011
Article Metadata
Tested with
Devices(s): Nokia 5800 XpressMusic
Compatibility
Platform(s): S60 3rd Edition, FP1, FP2
S60 5th Edition
S60 5th Edition
Article
Keywords: QFontMetrics, QFont
Created: (29 Apr 2009)
Last edited: hamishwillee
(04 Apr 2011)
Contents |
Overview
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.
Preconditions
- Install Nokia Qt SDK
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
painter.setFont(f);
// Set font color
painter.setPen(Qt::white);
// 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
painter.drawText(center,text);
}
Postconditions
The text is centered on the screen.
The code example can be found at File:HelloworldNew.zip

