0
 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 是纯文本编辑

现在还有另一个问题

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);
 }  

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

还有第二个,当我写 z.size 时,我得到 10 个输出,但 z 的大小为 5,如您所见。wrog 首先 5 输出为 0,然后休息是正常的,如 0 1 2 3 4 但我应该有 5输出我错了吗

4

1 回答 1

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);
于 2013-05-18T20:57:31.680 回答