Qt槽——实现计算器功能

一、前言

Qt提供了自己的设计方式,在Qtcreator的设计界面,通过pushbotton按钮的组合,可以轻松制作出可供使用的客户端,本文通过实现计算器功能来详细理解信号槽与数据类型转换。

二、项目的具体实现

1.创建项目-设计雏形

创建widget项目,勾选Generrate form创建.ui文件,打开,ui文件进入设计界面,拖拽pushbotton和lineedit规划大致计算器布局,同时修改各个button的objectname为常用。

2.槽的设计

Qtcreator可以通过设计界面右键button后的“转到槽”进行自动连接,也可通过手动连接,手动连接需要在头文件中写入slots。

private slots:
    void on_btn_1_clicked();
    void on_btn_2_clicked();
    void on_btn_3_clicked();
    void on_btn_4_clicked();
    void on_btn_5_clicked();
    void on_btn_6_clicked();
    void on_btn_7_clicked();
    void on_btn_8_clicked();
    void on_btn_9_clicked();
    void on_btn_0_clicked();
    void on_btn_add_clicked();
    void on_btn_sub_clicked();
    void on_btn_mul_clicked();
    void on_btn_div_clicked();
    void on_btn_equ_clicked();

并在实现界面进行函数功能的编写,即可完成槽信号的连接

void compute::on_btn_1_clicked()
{

}

3.运算逻辑的编写和数据类型的转换

计算器的功能需要在点击数字或符号的同时进行存储,直接通过int型数据会使十位百位难以描述,因此通过字符串类型进行存储数据,再将其转为int型方便编写和计算。

定义QString a和QStringList b,a用来进行单个数字的记录,b用来记录全部数字和符号

将数字按钮功能编写为a+="数字",以及使用setText()进行输出框的显示

void compute::on_btn_1_clicked()
{
    a+="1";
    ui->line_out->setText(a);
}

计算符号功能的编写:当点击计算符号时,利用b串记录已有的a值和符号,同时清空a。

void compute::on_btn_add_clicked()
{
    b.insert(0,a);
    a.clear();
    b.insert(1,"+");
    ui->line_out->setText(a);
}

等号功能的编写:当点击等号时,先对b中内容进行判断,当b中已经存在两个数据(第一个数和符号)时将第二个数据存入b,并通过判断b中符号进行相应的计算,否则就将ab清空。

if(b.count()==2)
    {
        b.insert(2,a);
        if(b.at(1)=="+")
        {
            int v3 = QString(b.at(0)).toInt()+QString(b.at(2)).toInt();
            ui->line_out->setText(QString::number(v3));
        }
    }
    else
    {
        a.clear();
        b.clear();
        ui->line_out->setText(a);
    }

注:ab中数据都是字符型,需要进行toInt的转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值