File: displaynumber.cpp

package info (click to toggle)
kgamma 4%3A4.8.4-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 268 kB
  • sloc: cpp: 1,038; makefile: 1; sh: 1
file content (64 lines) | stat: -rw-r--r-- 2,028 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/***************************************************************************
                          displaynumber.cpp  -  description
                             -------------------
    begin                : Sun Feb 23 2003
    copyright            : (C) 2003 by Michael v.Ostheim
    email                : ostheimm@users.berlios.de
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#include <qstring.h>
#include <qfontmetrics.h>
//Added by qt3to4:
#include <QLabel>
#include <QFrame>

#include "displaynumber.h"

DisplayNumber::DisplayNumber(QWidget *parent, int digits, int prec) 
  : QLabel(parent) {

  setPrecision(prec);
  setWidth(digits);

  setFrameStyle(QFrame::Panel | QFrame::Sunken);
  setBackgroundRole(QPalette::Base);
  setAlignment(Qt::AlignCenter);
  setFocusPolicy(Qt::NoFocus);
}

DisplayNumber::~DisplayNumber(){
}

void DisplayNumber::setFont( const QFont & f ) {
  QLabel::setFont(f);
  setWidth(dg);
}

void DisplayNumber::setWidth(int digits) {
  QFontMetrics fm(font());
  QString s("0123456789.+-");
  int width = 0, charWidth=0;

  for (int i = 0; i < 11; i++, width = fm.width(s[i]))
    charWidth = (width > charWidth) ? width : charWidth;

  dg = digits;
  setMinimumWidth( dg * charWidth + charWidth/2 );
}

void DisplayNumber::setNum(double num) {
  QString text;
  setText(text.setNum(num, 'f', precision));
}


#include "displaynumber.moc"