c++ - 没有匹配的函数来调用 QLinEedit

标签 c++ qt

我是 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/

相关文章:

c++ - 程序默默关闭

javascript - 我无法在 QML 中滑动屏幕动画

c++ - 如何为 Qt 应用程序提供脚本支持?

c++ - 我怎样才能让 g++ 模仿 MSVC++ 的模板实例化行为?

c++ - 从多个线程访问随机数引擎

c++ - 如何将 std::string 转换为 WCHAR

qt - 使用QPainter绘制富文本

c++ - QtWebengine 5.7.1 性能非常低

c++ - OpenGL Alpha 与错误的颜色混合

c++ - boost 中是否有等效的 std::sample ?