Archived:Calculating text width in Qt
hamishwillee
(Talk | contribs) m (Text replace - "<code cpp>" to "<code cpp-qt>") |
|||
| (14 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
| − | {{ | + | {{Archived|timestamp=20120608063017|user=[[User:Hamishwillee|<br />----]]|[[:Category:Qt Quick|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.}} |
| − | {{ | + | [[Category:Qt C++ UI]][[Category:UI]] |
| − | | | + | {{ArticleMetaData <!-- v1.2 --> |
| − | |platform=S60 3rd Edition, FP1, FP2<br>S60 5th Edition | + | |sourcecode= [[Media:HelloworldNew.zip]] |
| − | |devices | + | |installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> |
| − | | | + | |devices= Nokia 5800 XpressMusic |
| − | | | + | |sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) --> |
| − | | | + | |platform= S60 3rd Edition, FP1, FP2<br>S60 5th Edition |
| − | |keywords=QFontMetrics, QFont | + | |devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) --> |
| + | |dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 --> | ||
| + | |signing= <!-- Empty or one of Self-Signed, DevCert, Manufacturer --> | ||
| + | |capabilities= <!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. --> | ||
| + | |keywords= QFontMetrics, QFont | ||
| + | |language= <!-- Language category code for non-English topics - e.g. Lang-Chinese --> | ||
| + | |translated-by= <!-- [[User:XXXX]] --> | ||
| + | |translated-from-title= <!-- Title only --> | ||
| + | |translated-from-id= <!-- Id of translated revision --> | ||
| + | |review-by= <!-- After re-review: [[User:username]] --> | ||
| + | |review-timestamp= <!-- After re-review: YYYYMMDD --> | ||
| + | |update-by= <!-- After significant update: [[User:username]]--> | ||
| + | |update-timestamp= <!-- After significant update: YYYYMMDD --> | ||
| + | |creationdate= 20090326 | ||
| + | |author= [[User:Tepaa]] | ||
| + | <!-- The following are not in current metadata --> | ||
| + | |subcategory= UI | ||
| + | |id= CS001349 | ||
}} | }} | ||
==Overview== | ==Overview== | ||
| − | This code snippets shows how to use the | + | This code snippets shows how to use the {{Icode|QFont}} and {{Icode|QFontMetrics}} 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 [[Qt SDK]] |
| − | + | ||
| − | + | ||
==Source code== | ==Source code== | ||
*'''This source code centers the text and sets the text colour.''' | *'''This source code centers the text and sets the text colour.''' | ||
| − | <code cpp> | + | <code cpp-qt> |
void QMyWidget::paintEvent(QPaintEvent*) | void QMyWidget::paintEvent(QPaintEvent*) | ||
{ | { | ||
| Line 32: | Line 44: | ||
// Create font | // Create font | ||
| − | QFont f("Helvetica", | + | QFont f("Helvetica",20); |
// Set current font | // Set current font | ||
painter.setFont(f); | painter.setFont(f); | ||
| Line 43: | Line 55: | ||
// Calculate text center position into the screen using QFontMetrics class | // Calculate text center position into the screen using QFontMetrics class | ||
| − | QPoint center = QPoint((width()-fm.width(text))/2, | + | QPoint center = QPoint( ( width()-fm.width(text))/2, |
| − | + | ( height() - fm.height())/2 ); | |
// QFontMetrics::width() gives calculated text width with current QFont in QPainter | // QFontMetrics::width() gives calculated text width with current QFont in QPainter | ||
| Line 61: | Line 73: | ||
| − | [[Category: | + | [[Category:Code Examples]][[Category:Code Snippet]][[Category:MeeGo Harmattan]] [[Category:Symbian]] |
Latest revision as of 04:13, 11 October 2012
Archived: 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.
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 Example
Source file: Media:HelloworldNew.zip
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: tepaa
(26 Mar 2009)
Last edited: hamishwillee
(11 Oct 2012)
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 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

