Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:deneseme
sampledriver
calc.cpp
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File calc.cpp of Package sampledriver
#include "calc.h" #include <QLayout> #include <QLCDNumber> #include <QSignalMapper> #include <QString> MyCalc::MyCalc(QWidget *parent, char *name) { QPushButton *buttonNbr1 = new QPushButton("1"); QPushButton *buttonNbr2 = new QPushButton("2"); QPushButton *buttonNbr3 = new QPushButton("3"); QPushButton *buttonNbr4 = new QPushButton("4"); QPushButton *buttonNbr5 = new QPushButton("5"); QPushButton *buttonNbr6 = new QPushButton("6"); QPushButton *buttonNbr7 = new QPushButton("7"); QPushButton *buttonNbr8 = new QPushButton("8"); QPushButton *buttonNbr9 = new QPushButton("9"); QPushButton *buttonNbr0 = new QPushButton("0"); QPushButton *buttonAdd = new QPushButton("+"); QPushButton *buttonSubtract = new QPushButton("-"); QPushButton *buttonMultiply = new QPushButton("*"); QPushButton *buttonDivide = new QPushButton("/"); QPushButton *buttonEquals = new QPushButton("="); mp_lcdNum = new QLCDNumber(this); QGridLayout *GlCalcGrid = new QGridLayout(this); m_iValue1 = 0; m_iValue2 = 0; qstrOperator = ""; GlCalcGrid->addWidget(mp_lcdNum, 1, 1, 1, 4); GlCalcGrid->addWidget(buttonNbr1, 2, 1); GlCalcGrid->addWidget(buttonNbr2, 2, 2); GlCalcGrid->addWidget(buttonNbr3, 2, 3); GlCalcGrid->addWidget(buttonNbr4, 3, 1); GlCalcGrid->addWidget(buttonNbr5, 3, 2); GlCalcGrid->addWidget(buttonNbr6, 3, 3); GlCalcGrid->addWidget(buttonNbr7, 4, 1); GlCalcGrid->addWidget(buttonNbr8, 4, 2); GlCalcGrid->addWidget(buttonNbr9, 4, 3); GlCalcGrid->addWidget(buttonNbr0, 5, 1, 1, 2); GlCalcGrid->addWidget(buttonAdd, 2, 4); GlCalcGrid->addWidget(buttonSubtract, 3, 4); GlCalcGrid->addWidget(buttonMultiply, 4, 4); GlCalcGrid->addWidget(buttonDivide, 5, 4); GlCalcGrid->addWidget(buttonEquals, 5, 3); QSignalMapper *buttonMapper = new QSignalMapper(this); QSignalMapper *operatorMapper = new QSignalMapper(this); buttonMapper->setMapping(buttonNbr1, 1); buttonMapper->setMapping(buttonNbr2, 2); buttonMapper->setMapping(buttonNbr3, 3); buttonMapper->setMapping(buttonNbr4, 4); buttonMapper->setMapping(buttonNbr5, 5); buttonMapper->setMapping(buttonNbr6, 6); buttonMapper->setMapping(buttonNbr7, 7); buttonMapper->setMapping(buttonNbr8, 8); buttonMapper->setMapping(buttonNbr9, 9); buttonMapper->setMapping(buttonNbr0, 0); operatorMapper->setMapping(buttonAdd, "+"); operatorMapper->setMapping(buttonSubtract, "-"); operatorMapper->setMapping(buttonMultiply, "*"); operatorMapper->setMapping(buttonDivide, "/"); connect(buttonNbr1, SIGNAL(clicked()), buttonMapper, SLOT(map())); connect(buttonNbr2, SIGNAL(clicked()), buttonMapper, SLOT(map())); connect(buttonNbr3, SIGNAL(clicked()), buttonMapper, SLOT(map())); connect(buttonNbr4, SIGNAL(clicked()), buttonMapper, SLOT(map())); connect(buttonNbr5, SIGNAL(clicked()), buttonMapper, SLOT(map())); connect(buttonNbr6, SIGNAL(clicked()), buttonMapper, SLOT(map())); connect(buttonNbr7, SIGNAL(clicked()), buttonMapper, SLOT(map())); connect(buttonNbr8, SIGNAL(clicked()), buttonMapper, SLOT(map())); connect(buttonNbr9, SIGNAL(clicked()), buttonMapper, SLOT(map())); connect(buttonNbr0, SIGNAL(clicked()), buttonMapper, SLOT(map())); connect(buttonMapper, SIGNAL(mapped(int)), SLOT(AddNumberToLCD(int))); connect(buttonAdd, SIGNAL(clicked()), operatorMapper, SLOT(map())); connect(buttonSubtract, SIGNAL(clicked()), operatorMapper, SLOT(map())); connect(buttonMultiply, SIGNAL(clicked()), operatorMapper, SLOT(map())); connect(buttonDivide, SIGNAL(clicked()), operatorMapper, SLOT(map())); connect(operatorMapper, SIGNAL(mapped(QString)), SLOT(SetOperator(QString))); connect(buttonEquals, SIGNAL(clicked()), SLOT(Equals())); } void MyCalc::AddNumberToLCD(int Value) { QString qstrNumber, qstrTemp; int iTemp = mp_lcdNum->intValue(); if(iTemp != 0) { qstrNumber.setNum(iTemp); int ifiTemp = Value; qstrTemp.setNum(ifiTemp); qstrNumber += qstrTemp; iTemp = qstrNumber.toInt(); } else iTemp = Value; mp_lcdNum->display(iTemp); } void MyCalc::SetOperator(QString qstrTemp) { int iTemp = mp_lcdNum->intValue(); switch (qstrOperator.at(0).toAscii()) { case '+': m_iValue1 += iTemp; break; case '-': m_iValue1 -= iTemp; break; case '*': m_iValue1 *= iTemp; break; case '/': m_iValue1 /= iTemp; break; default: m_iValue1 = iTemp; } mp_lcdNum->display(m_iValue1); qstrOperator = qstrTemp; } void MyCalc::Equals() { m_iValue2 = mp_lcdNum->intValue(); if(qstrOperator.compare("+", qstrOperator) == 0) { m_iValue2 = mp_lcdNum->intValue(); int iTemp; iTemp = m_iValue1 + m_iValue2; mp_lcdNum->display(iTemp); } if(qstrOperator.compare("-", qstrOperator) == 0) { m_iValue2 = mp_lcdNum->intValue(); int iTemp; iTemp = m_iValue1 - m_iValue2; mp_lcdNum->display(iTemp); } if(qstrOperator.compare("*", qstrOperator) == 0) { m_iValue2 = mp_lcdNum->intValue(); int iTemp; iTemp = m_iValue1 * m_iValue2; mp_lcdNum->display(iTemp); } if(qstrOperator.compare("/", qstrOperator) == 0) { m_iValue2 = mp_lcdNum->intValue(); int iTemp; iTemp = m_iValue1 / m_iValue2; mp_lcdNum->display(iTemp); } } void MyCalc::Clear() { mp_lcdNum->display(0); m_iValue1 = 0; m_iValue2 = 0; } MyCalc::~MyCalc() {}
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor