qt在lineedit输入sin函数的表达式(如2sin(2x)+1,我想设置几个个变量精确取到“sin(”和“x)”之间的那个数字,该怎么写代码
时间: 2024-01-21 12:20:06 浏览: 67
输出sin函数
您可以使用正则表达式来匹配输入的文本,然后提取所需的数字。以下是一个示例代码,它使用QRegularExpression类来实现这一点:
```cpp
#include <QApplication>
#include <QLineEdit>
#include <QRegularExpression>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLineEdit lineEdit;
lineEdit.show();
QRegularExpression regex("(\\d+(\\.\\d+)?)sin\\((\\d+(\\.\\d+)?)x\\)");
// 匹配形如 "数字sin(数字x)" 的字符串
QObject::connect(&lineEdit, &QLineEdit::textChanged, [&]() {
QString text = lineEdit.text();
QRegularExpressionMatch match = regex.match(text);
if (match.hasMatch()) {
// 提取第一个数字
QString num1 = match.captured(1);
// 提取第二个数字
QString num2 = match.captured(3);
qDebug() << "Number 1:" << num1 << ", Number 2:" << num2;
}
});
return a.exec();
}
```
在这个示例中,我们创建了一个QLineEdit对象,然后使用textChanged信号来捕获用户的输入。当输入发生改变时,我们使用QRegularExpression类来匹配输入的文本并提取所需的数字。我们使用captured()函数来提取正则表达式中的捕获组,其中1和3分别表示第1个和第3个捕获组(即两个数字)。最后,我们使用qDebug()函数来输出提取的数字。
阅读全文