写之原因:
本人是一名菜鸟,学了Qt也就十天左右吧。
学习一种对我来说比较新的语言,最好的学习方式就是去真刀真枪的干一场!所以,闲来无事,就打算写一个小应用。
思来想去,觉得还是写一个简单的计算器吧,因为其他的涉及的还不是特别深,感觉自己能驾驭的就是计算器这种,简单而实用的小应用。
代码:
(1)calculate.h文件:
#ifndef CALCULATE_H
#define CALCULATE_H
#include <QWidget>
class QPushButton;
class QLineEdit;
class QHBoxLayout;
class QVBoxLayout;
class QChar;
class calculate : public QWidget
{
Q_OBJECT
public:
calculate(QWidget *parent = 0);
private slots:
void slotButton1();
void slotButton2();
void slotButton3();
void slotButton4();
void slotButton5();
void slotButton6();
void slotButton7();
void slotButton8();
void slotButton9();
void slotButton0();
void Plus();
void Minus();
void Multiply();
void Divide();
void Clear();
void Equal();
signals:
void PlusSignal(char state);
private:
void NewButton();
void NewLayout();
//virtual function
void keyPressEvent(QKeyEvent *key);
char state;
long long num1,num2,num3,num4,num5,num6,num7,
num8,num9,num0;
double a,b;
//Number Button
QPushButton *button1;
QPushButton *button2;
QPushButton *button3;
QPushButton *button4;
QPushButton *button5;
QPushButton *button6;
QPushButton *button7;
QPushButton *button8;
QPushButton *button9;
QPushButton *button0;
//Operator Button
QPushButton *clear;
QPushButton *buttonPlus;
QPushButton *buttonMinus;
QPushButton *buttonMultiply;
QPushButton *buttonDivide;
QPushButton *buttonEqual;
//TextLine
QLineEdit *textline;
//Layout
QHBoxLayout *Hlayout0;
QHBoxLayout *Hlayout1;
QHBoxLayout *Hlayout2;
QHBoxLayout *Hlayout3;
QHBoxLayout *Hlayout4;
QHBoxLayout *Hlayout5;
QHBoxLayout *Hlayout6;
QVBoxLayout *Vlayout;
QVBoxLayout *Vlayout2;
};
#endif // CALCULATE_H
(2)calculate.cpp文件
#include "calculate.h"
#include "QPushButton"
#include "QLineEdit"
#include "QHBoxLayout"
#include "QVBoxLayout"
#include "QMessageBox"
#include "QKeyEvent"
calculate::calculate(QWidget *parent)
: QWidget(parent)
{
//initial
a = 0;
b = 0;
state = 'N';
//textline
textline = new QLineEdit;
textline->setFixedHeight(80);
textline->setStyleSheet("font-size:32px");
textline->setText(tr("By Wsy..."));
textline->setAlignment(Qt::AlignRight | Qt::AlignBottom);
//button
NewButton();
//Layout
NewLayout();
//s