我对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
不在这里
是一个字符串的一部分,它是一个从未调用的函数中的几行。
我不明白,这让我大吃一惊...... 提前谢谢你!
答案 0 :(得分:2)
我认为这是正在发生的事情。您正在将"" + nbroles
传递给期望QString
的函数。所以调用QString::QString(const char*)
构造函数。该构造函数的参数是"" + nbroles
,它不是空字符串和nbroles
转换为字符串的串联,而是指向任意内存的一些指针 - 字符串文字""
的地址递增{{1 }} bytes。
尝试以这种方式调用您的函数:
nbroles