2013-11-14 129 views
-1

我無法讓這個工作。任何人都知道如何使它工作?Qt - 添加兩個數字

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: error: C2664: 'QLabel::setText' : cannot convert parameter 1 from 'int' to 'const QString &' Reason: cannot convert from 'int' to 'const QString' No constructor could take the source type, or constructor overload resolution was ambiguous

+0

請告訴我們您遇到什麼問題。這是不容易的,我們幫助時,問題描述是「不工作」 :) –

+0

它的工作,謝謝:d – Giefdonut

+0

沒有足夠的jQuery。 =)如果你可以寫這篇文章,爲什麼你不能理解編譯器的消息? 「無法將參數1從'int'轉換爲'const QString&'」 - 因此編譯器無法將您的整數轉換爲Qt QString。你需要明確地從int轉換爲QString。 – JustAnotherCurious

回答

3

在一般情況下,可以將多個數字類型轉換爲將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欲瞭解更多信息!

+0

什麼是通用「數量」不是數字在這裏? QString :: number()在功能上基本上是等價的,並且更簡潔(也可能更具性能)。所以我總是使用第二個變體。 –

+0

.arg()在某些情況下的優點是您可以鏈接它們。我剛剛更新了我的示例以反映這一點。 –