【问题标题】:Qt - Add two numbersQt - 添加两个数字
【发布时间】:2013-11-14 17:32:32
【问题描述】:

我无法让它工作。有谁知道如何让它工作?

void MainWindow::on_pushButton_clicked()
{

    int sum1 = ui->lineEdit->text().toInt();
    int sum2 = ui->lineEdit_2->text().toInt();

    ui->label_4->setText(sum1 + sum2);
}

错误:

C:\Qt\Tools\QtCreator\bin\Mellemrubrik\mainwindow.cpp:26: 错误:C2664: 'QLabel::setText' : 无法将参数 1 从 'int' 转换为 'const QString &' 原因:无法从 'int' 转换为 'const QString' 没有构造函数可以采用源类型,或者构造函数重载决议不明确

【问题讨论】:

  • 请告诉我们您遇到了什么问题。当问题描述为“不起作用”时,我们很难提供帮助:)
  • 成功了,谢谢 :D
  • 没有足够的 jquery。 =) 如果你能写这篇文章,为什么你看不懂编译器的信息? “无法将参数 1 从 'int' 转换为 'const QString &'” - 因此编译器无法将您的整数转换为 Qt QString。您需要从 int 显式转换为 QString。
  • 因为它写在错误消息中,它不能从 int 转换为字符串,你需要像下面提到的解决方案一样将 (sum1 + sum2) 转换为字符串,使用 QString::number

标签: qt qt-creator qmainwindow qtgui


【解决方案1】:

通常,您可以像这样将多种数字类型转换为 QString:

int val1, val2;
QString result = QString("val1=%1 val2=%2 sum=%3").arg(val1).arg(val2).arg(val1+val2);

但对于数字,这也是可能的:

int val1, val2;
QString result = QString::number(val1+val2);

您可以查看 Qt 的documentation 了解更多信息!

【讨论】:

  • 这里不是数字的通用“数量”是什么? QString::number() 在功能上基本上是等价的,而且更简洁(也可能更高效)。所以我总是使用第二种变体。
  • 在某些情况下 .arg() 的优势在于您可以将它们链接起来。我刚刚更新了我的示例以反映这一点。
【解决方案2】:

你可以试试这个

int v1,v2;
v1=ui->lineEdit->text().toInt():
v2=ui->lineEdit_2->text().toInt()
QString result = QString::number(v1+v2);
ui->label->setText(result);

【讨论】:

  • 您应该尝试在代码块中添加简短的文字描述。也许从代码块中取出“你可以试试这个”,然后稍微扩展一下句子。
【解决方案3】:

如下图setNum可以吗?

int v1,v2;
v1=ui->lineEdit->text().toInt():
v2=ui->lineEdit_2->text().toInt()
ui->label->setNum(v1+v2);

【讨论】:

    猜你喜欢
    • 2012-01-18
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多