目录
1.结果展示
2.实现说明
本例使用QScriptEngine类的evaluate(QString sformula)方法实现对公式的计算,且使用既方便又简单,sformula为公式。
直接计算有值的公式:evaluate(10*2*Math.pow(2,6)).toString();
计算带变量的公式:evaluate(A=10;B=2;C=6;);//先给变量赋值
evaluate(A*2*Math.pow(B,C)).toString();//计算带变量的公式
常用Math方法说明:
求绝对值:Math.abs(-10),等于10;
平方根:Math.sqrt(4),等于2;
几次方:Math.pow(2,3),等于8;
其余方法可在网上搜索“JS中Math的常用方法”。
3.源代码说明与展示
.pro文件中添加QT += script
头文件calculatorwidget.h源码如下:
#ifndef CALCULATORWIDGET_H
#define CALCULATORWIDGET_H
#include <QWidget>
#include <QtScript/QScriptEngine>
QT_BEGIN_NAMESPACE
namespace Ui { class CalculatorWidget; }
QT_END_NAMESPACE
class CalculatorWidget : public QWidget
{
Q_OBJECT
public:
CalculatorWidget(QWidget *parent = nullptr);
~CalculatorWidget();
private slots:
void on_pushButton_clicked();
private:
Ui::CalculatorWidget *ui;
};
#endif // CALCULATORWIDGET_H
源文件calculatorwidget.cpp源码如下:
#include "calculatorwidget.h"
#include "ui_calculatorwidget.h"
CalculatorWidget::CalculatorWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::CalculatorWidget)
{
ui->setupUi(this);
}
CalculatorWidget::~CalculatorWidget()
{
delete ui;
}
void CalculatorWidget::on_pushButton_clicked()
{
QScriptEngine scriptEngine;
QScriptValue scriptVal;
if(ui->lineEdit->text() != "")
{
scriptEngine.evaluate(ui->lineEdit->text());//变量赋值
}
scriptVal = scriptEngine.evaluate(ui->lineEdit_2->text());//计算公式
ui->lineEdit_3->setText(scriptVal.toString());//显示结果
}
4.项目文件下载地址
文件中含有项目源代码文件和打包好的文件夹,直接点击打包好的文件夹中的exe文件可使用测试。下载地址:https://download.csdn.net/download/weixin_44322043/86247459