如何在QT中以纯文本格式打印矢量

时间:2013-05-18 20:44:19

标签: qt

 int b=0;
     QVector<int> z(5);
     for(int i=0;i<5;i++)
     z.push_back(i);
     for(int i=0;i<z.size();i++)
     {
         b=z.at(i);
         QString str=QString::number(b);

             ui->mbox->setText(str);

     }

我编写了这段代码,用纯文本打印矢量,但它只打印我要打印的第一行 整个矢量 不是:mbox是一个普通的textedit

现在还有另一个问题

QVector<int> z(5);
     for(int i=0;i<5;i++)
     z.push_back(i);
         QString str;
         for (int i = 0; i < z.size(); ++i)
         {
             if (i > 0)
                 str += " ";
             str += QString::number(z[i]);
         }

         ui->mbox->setText(str);
 }  

在第一个for循环中,当我写z.size()时,我得到Qt已捕获从事件处理程序抛出的异常。投掷 Qt不支持来自事件处理程序的异常。你必须 重新实现QApplication :: notify()并捕获所有异常。

也是第二次,当我写z.size时,我得到10输出,但z的大小是5,你可以看到。是什么是wrog 前5输出为0,然后休息正常,如0 1 2 3 4 但我错了,我应该有5个输出

1 个答案:

答案 0 :(得分:2)

您正在覆盖向量中每个项目的文本。根据以下值构造QString:

QString str;
for (int i = 0; i < z.size(); ++i)
{
    if (i > 0)
        str += " ";
    str += QString::number(z[i]);
}

ui->mbox->setText(str);