zoukankan      html  css  js  c++  java
  • Qt5编写科学计算器碰到的一个问题

    最近在编写计算器的时候,碰到了一些问题,比如sin按钮功能。

    我的代码本来是这样写的:


    sin按钮槽函数

    void MainWindow::on_btnSin_clicked()
    {
        QString s = ui->lineEdit->text();
        ui->lineEdit->setText("sin("+s+"rad)");
        clickbtn("sin");
        emit whichBtn(OPERA);
    }
    调用的求值函数部分

    //QString str = ui->lineEdit->text();
        double operand=ui->lineEdit->text().toDouble();
        double result=0.0;
        const double pi=3.14592654;
        if(btn == tr("sin"))
        {
            double a=operand;
            result=sin(a);
            QString str=QString::number(result,'f',2);
            result=str.toDouble();
            ui->lineEdit1->setText(QString::number(result));
        }



    但是这样运行下来,无论输入是什么,计算结果都是0,非常郁闷。

    后来我在上面函数注释的那里设置了断点,然后单步调试(F10),终于找到了问题的所在

    原来是代码顺序写反了,应该先取值进入函数计算,然后在屏幕上显示结果,正确的代码应该是这样:

    void MainWindow::on_btnSin_clicked()
    {
        QString s = ui->lineEdit->text();
        clickbtn("sin");
        ui->lineEdit->setText("sin("+s+"rad)");
        emit whichBtn(OPERA);
    }

    这里就仅仅是把sclikbtn函数调用提前到了结果显示前面,就正确了。

  • 相关阅读:
    显示内容和隐藏v-show(以及图标的动态展示)
    主表查询子表
    怎么在pda安装apk
    java学习第40天2020/8/14
    Java学习第39天2020/8/13
    java学习第38天2020/8/12
    java学习第37天2020/8/11
    rz
    git tag
    audio vedio 播放
  • 原文地址:https://www.cnblogs.com/raiven2008/p/4209218.html
Copyright © 2011-2022 走看看