基于Ubuntu的计算器Qt程序设计

简述

在Ubuntu操作系统下使用Qt实现带界面的简单计算器,实现加减乘除运算

Ubuntu 16.04 LTS
Qt 4.8.2

界面设计

新建一个桌面应用,使用Qt creator设计界面做如下布局

组件

  • 拖放一个QLineEdit
  • 4*4排列16个QPushButton
  • 修改对应按钮的值
  • 修改主窗口标题为”计算器”

布局

  • 4*4按钮全部选中,进行栅格布局
  • 选中4*4按钮和QLineEdit组件进行垂直布局
  • 主窗口进行栅格布局

界面设计完成后如下图

基于Ubuntu的计算器Qt程序设计_第1张图片

代码实现

头文件中定义变量

QString showstr,before,after,op;
  • showstr 存放界面QLineEdit组件显示内容
  • op 存放当前运算的的操作符(+,-,*,/)
  • before存放运算符前的操作数的QString
  • after存放运算符后的操作数的QString

头文件函数声明

    void process();
    void print();
  • void process();用于实现计算的具体过程
  • void print();控制界面输出的内容

基于Ubuntu的计算器Qt程序设计_第2张图片

构造函数初始化

    after="";
    before="0";
    showstr="";
    op="";

基于Ubuntu的计算器Qt程序设计_第3张图片

process()函数定义

将QString类型的操作数转换为int类型,然后if判断op类型,进行相对应的运算,计算完成后第二个操作数清空,结果保存在第一个操作数变量中.

//计算过程
void MainWindow::process()
{
    if(op=="")
    {
        before=after;
    }
    else if (op=="+")
    {
        int temp=after.toInt()+before.toInt();
        qDebug()<.toInt()<.toInt();
        before=QString::number(temp);
        qDebug()<.toInt();

    }
    else if (op=="-")
    {
        int temp=before.toInt()-after.toInt();
        qDebug()<.toInt()<.toInt();
        before=QString::number(temp);
        qDebug()<.toInt();

    }
    else if (op=="*")
    {
        int temp=after.toInt()*before.toInt();
        qDebug()<.toInt()<.toInt();
        before=QString::number(temp);
        qDebug()<.toInt();

    }
    else if (op=="/")
    {
        if(after.toInt()==0)
        {
            QMessageBox::about(this,"error","不能除零");
            return ;
        }
        int temp=before.toInt()/after.toInt();
        qDebug()<.toInt()<.toInt();
        before=QString::number(temp);
        qDebug()<.toInt();

    }
    after="";
}

print()函数定义

//print
void MainWindow::print()
{
    ui->lineEdit->setText(showstr);
}

定义槽函数

在UI界面右键按钮在菜单选择转到槽,选中clicked()进行定义槽函数
基于Ubuntu的计算器Qt程序设计_第4张图片

数字按钮(0-9)的槽进行如下定义

//按键1
void MainWindow::on_pushButton_clicked()
{
    after+="1";
    showstr+="1";
    print();
}

点击按钮后,操作数进行改变,并且在界面显示

基于Ubuntu的计算器Qt程序设计_第5张图片

以此类推定义所有数字按钮的的槽函数

运算符(加减乘除)的槽函数定义

//+
void MainWindow::on_pushButton_4_clicked()
{
    showstr+="+";
    print();
    qDebug()<<"+";
    process();
    op="+";
}
//-
void MainWindow::on_pushButton_8_clicked()
{
    showstr+="-";
    print();
    qDebug()<<"-";
    process();
    op="-";
}
//*
void MainWindow::on_pushButton_12_clicked()
{
    showstr+="*";
    print();
    qDebug()<<"*";
    process();
    op="*";
}
//\/
void MainWindow::on_pushButton_16_clicked()
{
    showstr+="/";
    print();
    qDebug()<<"/";
    process();
    op="/";
}

基于Ubuntu的计算器Qt程序设计_第6张图片

“=”按钮槽函数

“=”按钮点击后显示计算结果,并且初始化变量,准备进行下一次运算

//=
void MainWindow::on_pushButton_15_clicked()
{
    showstr+="=";
    process();
    showstr+=before;
    print();
    showstr=after=before=op="";
}

“C”清屏按钮

//C
void MainWindow::on_pushButton_13_clicked()
{
    ui->lineEdit->setText("");
}

运行实例

启动后界面

基于Ubuntu的计算器Qt程序设计_第7张图片

加法运算

基于Ubuntu的计算器Qt程序设计_第8张图片

减法运算

基于Ubuntu的计算器Qt程序设计_第9张图片

乘法运算

基于Ubuntu的计算器Qt程序设计_第10张图片

除法运算

基于Ubuntu的计算器Qt程序设计_第11张图片

除零错误

基于Ubuntu的计算器Qt程序设计_第12张图片

源代码

源代码已上传,点击下载

(设置资源积分过高不能更改,如需要私信可邮件发送源代码)

你可能感兴趣的:(Qt,linux)