我是 qt 的新手。我正在制作一个计算器,我制作了一个函数来添加 2 个数字,但它给了我一些奇怪的错误。该函数首先从 lineEdit
中获取 2 个 strings
的输入,然后通过 toInt
函数将它们转换为 int
并添加它们然后通过text()将其放入
:label
中。我的函数
void calculator::on_pushButton_clicked()
{
ui->ansLabel->setText("+");
ui->firstNo->text(string1);
ui->secondNo->text(string2);
int firstno = string1.toInt();
int secondno = string2.toInt();
int ans = firstno + secondno;
ui->ansLabel->setText(ans);
}
错误:
\Calculator\calculator.cpp:20: error: no matching function for call to 'QLineEdit::text(QString&)'
ui->firstNo->text(string1);
\Calculator\calculator.cpp:25: error: invalid user-defined conversion from 'int' to 'const QString&' [-fpermissive]
ui->ansLabel->setText(ans);
^
\Calculator\calculator.cpp:25: error: invalid conversion from 'int' to 'const char*' [-fpermissive]
ui->ansLabel->setText(ans);
^
如何修复这些错误。我做错了什么?
最佳答案
编译器会准确地告诉你哪里出了问题。根据 Qt 文档,QLineEdit::text()
函数不接受任何参数,但会返回一个值。同样,QLabel::setText()
不接受整数作为参数,但是QString
。因此,您需要像这样编写您的函数:
void calculator::on_pushButton_clicked()
{
ui->ansLabel->setText("+");
QString string1 = ui->firstNo->text();
QString string2 = ui->secondNo->text();
int firstno = string1.toInt();
int secondno = string2.toInt();
int ans = firstno + secondno;
ui->ansLabel->setText(QString::number(ans));
}
关于c++ - 没有匹配的函数来调用 QLinEedit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21700910/