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函数调用提前到了结果显示前面,就正确了。

浙公网安备 33010602011771号