Qt之简易计算器

本文记录了一名Qt新手在学习十天后的实践成果,通过编写一个简易计算器应用来加深理解。代码中实现了键盘输入数字的功能,但运算符部分仍待完善。作者期待与社区交流,改进计算器设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写之原因:

本人是一名菜鸟,学了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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值