QString显示不良

时间:2013-04-24 11:03:38

标签: c++ qt qstring

我对Qt很新,我遇到了一个我以前从未见过的问题:当我更新QLabel的文本时,QString在赋值之前更改了值juste。

这是我的代码:

dom.cpp

if (noeud.nodeName().toStdString() == "roles"){
            cout << endl << "Value of nbroles: "<< nbroles;
            w.addmsg("" + nbroles);
        }

info.cpp

void info::addmsg(QString str){
    this->txt->setText(this->txt->text() +"\n"+ str);
    this->txt->adjustSize();
    cout << endl << "add : " << str.toStdString();
}

这是我的输出:

Value of nbroles : 41
add : 'm not here
  

不在这里

是一个字符串的一部分,它是一个从未调用的函数中的几行。

我不明白,这让我大吃一惊...... 提前谢谢你!

1 个答案:

答案 0 :(得分:2)

我认为这是正在发生的事情。您正在将"" + nbroles传递给期望QString的函数。所以调用QString::QString(const char*)构造函数。该构造函数的参数是"" + nbroles,它不是空字符串和nbroles转换为字符串的串联,而是指向任意内存的一些指针 - 字符串文字""的地址递增{{1 }} bytes。

尝试以这种方式调用您的函数:

nbroles