2013-05-18 25 views
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是一個普通的文本編輯如何打印純文本的向量在QT

現在還有另一個問題

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個輸出我錯了

+0

如果是關於調試:qDebug()<< z; –

回答

1

你正在覆蓋向量中的每個項目的文本。從這樣的值構造一個QString:

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

ui->mbox->setText(str);