×
Namespaces

Variants
Actions
(Difference between revisions)

Archived:Calculating text width in Qt

From Nokia Developer Wiki
Jump to: navigation, search
seppo_fn (Talk | contribs)
hamishwillee (Talk | contribs)
m (Text replace - "<code cpp>" to "<code cpp-qt>")
 
(20 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{CodeSnippet
+
{{Archived|timestamp=20120608063017|user=[[User:Hamishwillee|&lt;br /&gt;----]]|[[: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.}}
|id=  
+
[[Category:Qt C++ UI]][[Category:UI]]
|platform=S60 3rd Edition, FP1, FP2, S60 5th Edition
+
{{ArticleMetaData <!-- v1.2 -->
|devices=5800 XpressMusic
+
|sourcecode= [[Media:HelloworldNew.zip]]
|category=Qt for S60
+
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
|subcategory=UI
+
|devices= Nokia 5800 XpressMusic
|creationdate=March 26, 2009
+
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
|keywords=QFontMetrics, QFont
+
|platform= S60 3rd Edition, FP1, FP2<br>S60 5th Edition
 +
|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 QFont and QFontMetrics classes to draw string into center of the screen and to get string height and width as pixels.
+
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.
 
+
'''Note''': In order to use this code, you need to have Qt for S60 installed on your platform.
+
 
+
  
 
==Preconditions==
 
==Preconditions==
  
* Install Qt for S60 Garden release from here: [http://pepper.troll.no/s60prereleases/ Qt for S60 "Garden" pre-release]
+
* Install [[Qt SDK]]
* Check this link for installation guide: [http://pepper.troll.no/s60prereleases/doc/install-s60.html How to install the package]
+
  
 
==Source code==
 
==Source code==
*'''This source code is use to set the text in center as well as to color the text.'''
+
*'''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 30: Line 44:
  
 
     // Create font
 
     // Create font
     QFont f("Helvetica",6);
+
     QFont f("Helvetica",20);
 
     // Set current font
 
     // Set current font
 
     painter.setFont(f);
 
     painter.setFont(f);
Line 41: 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((widgetSize.width()-fm.width(text))/2,
+
     QPoint center = QPoint( ( width()-fm.width(text))/2,
                          fm.height());
+
                            ( 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 54: Line 68:
  
 
==Postconditions==
 
==Postconditions==
Text is screen center.
+
The text is centered on the screen.
 +
 
 +
The code example can be found at [[File:HelloworldNew.zip]]
  
  
[[Category:Qt]][[Category:Qt for S60]][[Category:Code Examples]][[Category:UI]]
+
[[Category:Code Examples]][[Category:Code Snippet]][[Category:MeeGo Harmattan]] [[Category:Symbian]]

Latest revision as of 04:13, 11 October 2012

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
Compatibility
Platform(s): S60 3rd Edition, FP1, FP2
S60 5th Edition
Symbian
Article
Keywords: QFontMetrics, QFont
Created: tepaa (26 Mar 2009)
Last edited: hamishwillee (11 Oct 2012)

Contents

[edit] 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.

[edit] Preconditions

[edit] 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);
}


[edit] Postconditions

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.
292 page views in the last 30 days.
×