×
Namespaces

Variants
Actions
(Difference between revisions)

Archived:Como criar uma calculadora simples, em Qt

From Nokia Developer Wiki
Jump to: navigation, search
hamishwillee (Talk | contribs)
m (Text replace - "Category:MeeGo" to "Category:MeeGo Harmattan")
hamishwillee (Talk | contribs)
m (Text replace - "<code cpp>" to "<code cpp-qt>")
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
 +
{{Archived|language=Lang-Portuguese|timestamp=20120216044749|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 (based on {{Qapiname|QWidget}}) is deprecated.}}
 
[[Category:Lang-Portuguese]][[Category:Qt C++ UI]][[Category:Code Examples]][[Category:MeeGo Harmattan]][[Category:Symbian]]
 
[[Category:Lang-Portuguese]][[Category:Qt C++ UI]][[Category:Code Examples]][[Category:MeeGo Harmattan]][[Category:Symbian]]
 
{{Abstract|Este trecho de código demonstra como criar uma simples calculadora usando [[Qt (Portuguese)|Qt]].}}
 
{{Abstract|Este trecho de código demonstra como criar uma simples calculadora usando [[Qt (Portuguese)|Qt]].}}
{{Archived|language=Lang-Portuguese|timestamp=20120216044749|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 (based on {{Qapiname|QWidget}}) is deprecated.}}
 
 
{{ArticleMetaData <!-- v1.2 -->
 
{{ArticleMetaData <!-- v1.2 -->
 
|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 15:
 
|language= Lang-Portuguese
 
|language= Lang-Portuguese
 
|translated-by= [[User:Valderind4]]
 
|translated-by= [[User:Valderind4]]
|translated-from-title= Creating a simple calculator using QWidgets
+
|translated-from-title= Archived:Creating a simple calculator using QWidgets
 
|translated-from-id= 60532 <!-- automated guess -->
 
|translated-from-id= 60532 <!-- automated guess -->
 
|review-by= <!-- After re-review: [[User:username]] -->
 
|review-by= <!-- After re-review: [[User:username]] -->
Line 27: Line 27:
 
== Arquivo de cabeçalho ==
 
== Arquivo de cabeçalho ==
 
=== Cal.h===
 
=== Cal.h===
<code cpp>
+
<code cpp-qt>
  
 
#ifndef CAL_H
 
#ifndef CAL_H
Line 77: Line 77:
 
== Código fonte ==
 
== Código fonte ==
 
===cal.cpp===
 
===cal.cpp===
<code cpp>
+
<code cpp-qt>
  
 
#include "cal.h"
 
#include "cal.h"
Line 188: Line 188:
 
==Arquivo de cabeçalho==
 
==Arquivo de cabeçalho==
 
=== QtCalculator.h===
 
=== QtCalculator.h===
<code cpp>
+
<code cpp-qt>
 
#ifndef QTCALCULATOR_H
 
#ifndef QTCALCULATOR_H
 
#define QTCALCULATOR_H
 
#define QTCALCULATOR_H
Line 219: Line 219:
 
==Código fonte==
 
==Código fonte==
 
=== QtCalculator.cpp===
 
=== QtCalculator.cpp===
<code cpp>
+
<code cpp-qt>
 
#include "QtCalculator.h"
 
#include "QtCalculator.h"
  
Line 322: Line 322:
 
==Comentário==
 
==Comentário==
 
Código de erro resolvido.
 
Código de erro resolvido.
<!-- Translation --> [[en:Creating a simple calculator using QWidgets]]
+
<!-- Translation --> [[en:Archived:Creating a simple calculator using QWidgets]]

Latest revision as of 04:13, 11 October 2012

Archived.pngAquivado: Este artigo foi arquivado, pois o conteúdo não é mais considerado relevante para se criar soluções comerciais atuais. Se você achar que este artigo ainda é importante, inclua o template {{ForArchiveReview|escreva a sua justificativa}}.

Qt Quick should be used for all UI development on mobile devices. The approach described in this article (based on QWidget) is deprecated.

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

Article Metadata

Testado com
Aparelho(s): Emulator

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

Artigo
Palavras-chave: QString, Push Button, Text Label
Tradução:
Por valderind4
Última alteração feita por hamishwillee em 11 Oct 2012

Contents

[edit] Arquivo de cabeçalho

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

[edit] Código fonte

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

[edit] Captura de tela

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

Cal001.jpg

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



[edit] Design da UI

[edit] QtCalculator.ui

QtCalculatorUi.png


[edit] Arquivo de cabeçalho

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


[edit] Código fonte

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


[edit] Conclusões

  • Será mostrada um simples calculadora na tela.

QtCalculatorScreenShot.png

[edit] Exemplo

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

[edit] Comentário

Código de erro resolvido.

This page was last modified on 11 October 2012, at 04:13.
181 page views in the last 30 days.
×