QString显示不良

QString bad display

本文关键字:不良 显示 QString      更新时间:2023-10-16

我对Qt很陌生,我有一个问题,我以前从未见过:当我更新QLabel的文本时,QString值的变化就在赋值之前。

下面是我的代码:

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

我不在这里

是字符串的一部分,位于从未调用过的函数的下面几行。

我不明白,这让我很震惊…提前感谢!

我想事情是这样的。您将"" + nbroles传递给需要QString的功能。所以调用QString::QString(const char*)构造函数。该构造函数的参数是"" + nbroles,它不是空字符串和转换为字符串的nbroles的连接,而是指向任意内存地址的指针——字符串字面值""的地址增加nbroles个字节。

试着这样调用你的函数:

w.addmsg(QString::number(nbroles));