Namespaces
Variants
Actions
(Difference between revisions)

Archived:Como criar uma calculadora simples, em Qt

Jump to: navigation, search
m (Hamishwillee - Tidy wiki text)
Line 1: Line 1:
[[Category:Lang-Portuguese]]
+
[[Category:Lang-Portuguese]][[Category:Qt]][[Category:Code Examples]][[Category:MeeGo]][[Category:Symbian]]
[[Category:Qt]]
+
[[Category:Code Examples]]
+
__NOTOC__
+
__NOEDITSECTION__
+
 
{{ArticleMetaData
 
{{ArticleMetaData
 
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) -->
 
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) -->
Line 15: Line 11:
 
|capabilities=<!-- Capabilities required (e.g. Location, NetworkServices.) -->
 
|capabilities=<!-- Capabilities required (e.g. Location, NetworkServices.) -->
 
|keywords=QString, Push Button, Text Label
 
|keywords=QString, Push Button, Text Label
|id=...
 
 
|language=Lang-Portuguese
 
|language=Lang-Portuguese
 
|translated-by=[[User:Valderind4]]
 
|translated-by=[[User:Valderind4]]
Line 26: Line 21:
 
|creationdate=20090912
 
|creationdate=20090912
 
|author=[[User:Kiran10182]]
 
|author=[[User:Kiran10182]]
 
<!-- The following items are not in the standard metadata template -->
 
|category=Qt for Symbian
 
|subcategory=Application
 
 
}}
 
}}
 
  
 
==Introdução==
 
==Introdução==
Line 42: Line 32:
  
 
== Design do Layout ==
 
== Design do Layout ==
 
  
 
== Arquivo de cabeçalho ==
 
== Arquivo de cabeçalho ==
Line 335: Line 324:
 
== Exemplo ==
 
== Exemplo ==
 
* Faça o download do exemplo trabalhado neste link: [[Media:QtCalculator.zip|QtCalculator.zip]]
 
* Faça o download do exemplo trabalhado neste link: [[Media:QtCalculator.zip|QtCalculator.zip]]
 
  
 
== Feedback ==
 
== Feedback ==
Line 342: Line 330:
 
==Comentário==
 
==Comentário==
 
Código de erro resolvido.
 
Código de erro resolvido.
<!-- Translation --> [[en:Creating a simple calculator in Qt for Symbian]][[Category:MeeGo]] [[Category:Symbian]]
+
<!-- Translation --> [[en:Creating a simple calculator in Qt for Symbian]]

Revision as of 12:50, 15 February 2012

Dados do artigo

Testado com
Aparelho(s): Emulator

Compatibilidade
Plataforma(s): S60 3rd Edition FP1, S60 3rd Edition FP2, S60 5th Edition

Artigo
Palavras-chave: QString, Push Button, Text Label
Tradução:
Última alteração feita por hamishwillee em 15 Feb 2012

Contents

Introdução

Este trecho de código demonstra como criar uma simples calculadora usando Qt for Symbian.

Pré-requisitos

  • Baixe e instale a versão atual do Qt para Symbian segundo as instruções deste artigo.

Design do Layout

Arquivo de cabeçalho

Cal.h

#ifndef CAL_H
#define CAL_H
 
#include <QtGui/QWidget>
#include "ui_cal.h"
#include<QString>
#include<QPushButton>
#include<QLineEdit>
#include<QHBoxLayout>
#include<QVBoxLayout>
#include<QFormLayout>
class cal : public QWidget
{
Q_OBJECT
 
public:
cal(QWidget *parent = 0);
~cal();
 
private:
QPushButton *but1;
QPushButton *sub;
QPushButton *mul;
QPushButton *div;
QPushButton *eq;
QFormLayout *lay;
QLineEdit *line;
QString str;
QString str1;
QString ch;
QString strResult;
private slots:
void addi();
void subs();
void mult();
void divi();
void em();
public:
float num;
float num1;
float ans;
};
 
#endif // CAL_H

Código fonte

cal.cpp

#include "cal.h"
 
cal::cal(QWidget *parent)
: QWidget(parent)
{
lay=new QFormLayout(this);
but1=new QPushButton("+",this);
sub=new QPushButton("-",this);
mul=new QPushButton("*",this);
div=new QPushButton("/",this);
eq=new QPushButton("=",this);
line=new QLineEdit(this);
line->setMaxLength(12);
lay->addWidget(line);
lay->addWidget(but1)
lay->addWidget(sub);
lay->addWidget(mul);
lay->addWidget(div);
lay->addWidget(eq);
setLayout(lay);
QObject::connect(but1,SIGNAL(clicked()),this,SLOT(addi()));
QObject::connect(sub,SIGNAL(clicked()),this,SLOT(subs()));
QObject::connect(mul,SIGNAL(clicked()),this,SLOT(mult()));
QObject::connect(div,SIGNAL(clicked()),this,SLOT(divi()));
QObject::connect(eq,SIGNAL(clicked()),this,SLOT(em()));
}
 
cal::~cal()
{
// No need to delete any object that got a parent that is properly deleted.
 
}
void cal::addi()
{
str=line->text();
num=str.toFloat();
ch=but1->text();
line->clear();
}
void cal::subs()
{
str=line->text();
num=str.toFloat();
ch=sub->text();
line->clear();
}
void cal::mult()
{
str=line->text();
num=str.toFloat();
ch=mul->text();
line->clear();
}
void cal::divi()
{
str=line->text();
num=str.toFloat();
ch=div->text();
line->clear();
}
void cal::em()
{
 
 
str1 = line->text();
num1 = str1.toFloat();
if (ch=="+")
{
ans=num+num1;
}
else if(ch=="-")
{
ans=num-num1;
}
else if(ch=="*")
{
ans=num*num1;
}
else if(ch=="/")
{
ans=num/num1;
}
else
{
strResult = strResult.number(ans);
line->setText(strResult);
}
strResult = strResult.number(ans);
line->setText(strResult);
ch="";
}

Captura de tela

  • Entrada de algum valor na linha de edição.

Cal001.jpg

  • Operação decimal também é possível na calculadora.



Design da UI

QtCalculator.ui

QtCalculatorUi.png


Arquivo de cabeçalho

QtCalculator.h

#ifndef QTCALCULATOR_H
#define QTCALCULATOR_H
 
#include <QtGui/QWidget>
#include "ui_QtCalculator.h"
 
class QtCalculator : public QWidget
{
Q_OBJECT
 
public:
QtCalculator(QWidget *parent = 0);
~QtCalculator();
 
public slots:
void Addition();
void Subtraction();
void Multiplication();
void Division();
 
private:
Ui::QtCalculatorClass ui;
};
 
#endif // QTCALCULATOR_H


Código fonte

QtCalculator.cpp

#include "QtCalculator.h"
 
QtCalculator::QtCalculator(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
QObject::connect(ui.plusButton, SIGNAL(clicked()), this, SLOT(Addition()));
QObject::connect(ui.minusButton,SIGNAL(clicked()), this, SLOT(Subtraction()));
QObject::connect(ui.multiplyButton,SIGNAL(clicked()), this, SLOT(Multiplication()));
QObject::connect(ui.divisionButton,SIGNAL(clicked()), this, SLOT(Division()));
}
 
QtCalculator::~QtCalculator()
{
QString strFisrt = ui.lineEditNumber1->text();
QString strSecond = ui.lineEditNumber2->text();
 
bool ok;
int number1 = strFisrt.toInt(&ok);
int number2 = strSecond.toInt(&ok);
int result = number1 + number2;
 
QString strResult;
strResult = strResult.number(result);
ui.lineEditResult->setText(strResult);
}
 
void QtCalculator::Addition()
{
QString strFisrt = ui.lineEditNumber1->text();
QString strSecond = ui.lineEditNumber2->text();
 
bool ok;
int number1 = strFisrt.toInt(&ok);
int number2 = strSecond.toInt(&ok);
int result = number1 + number2;
 
QString strResult;
strResult = strResult.number(result);
ui.lineEditResult->setText(strResult);
}
 
void QtCalculator::Subtraction()
{
QString strFisrt = ui.lineEditNumber1->text();
QString strSecond = ui.lineEditNumber2->text();
 
bool ok;
int number1 = strFisrt.toInt(&ok);
int number2 = strSecond.toInt(&ok);
int result = number1 - number2;
 
QString strResult;
strResult = strResult.number(result);
ui.lineEditResult->setText(strResult);
}
 
void QtCalculator::Multiplication()
{
QString strFisrt = ui.lineEditNumber1->text();
QString strSecond = ui.lineEditNumber2->text();
 
bool ok;
int number1 = strFisrt.toInt(&ok);
int number2 = strSecond.toInt(&ok);
int result = number1 * number2;
 
QString strResult;
strResult = strResult.number(result);
ui.lineEditResult->setText(strResult);
}
 
void QtCalculator::Division()
{
QString strFisrt = ui.lineEditNumber1->text();
QString strSecond = ui.lineEditNumber2->text();
 
bool ok;
int number1 = strFisrt.toInt(&ok);
int number2 = strSecond.toInt(&ok);
int result = number1 / number2;
 
QString strResult;
strResult = strResult.number(result);
ui.lineEditResult->setText(strResult);
}


Conclusões

  • Será mostrada um simples calculadora na tela.

QtCalculatorScreenShot.png

Exemplo

Feedback

  • Se você econtrar algum problema na implementação desta simples calculadora, então por favor escreva seu feedback na página deste artigo Comment page (Inglês). Eu tentarei dá o máximo para tentar ajudar você.

Comentário

Código de erro resolvido.

496 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved