2012-03-15 93 views
0

我只是想將小部件添加到我的表小部件中,而我正在嘗試下面的代碼,但是我一直運行該程序,第一個小部件已添加,但其餘部分未添加。你能幫我解決這個問題嗎?QTableWidget - setCellWidget缺少添加?

if(req.at(index).request.CodedValue.size() > 1) 
{ 
    int rowNumber = -1; 
    for (int paramNumber = 0 ; paramNumber < req.at(index).request.params.size(); paramNumber++) 
    { 

     if(req[index].request.params[paramNumber].semantic == "DATA") 
     { 
      rowNumber++; 
      QComboBox* reqComboBox = new QComboBox(); 
      QLineEdit* tableReqLineEdit = new QLineEdit(); 

      for (int codedCounter = 0; codedCounter < req.at(index).request.CodedValue.at(paramNumber).trams.size(); codedCounter++) 
      { 
       // you should look for the subfunctions and add according to them 
       reqComboBox->addItem((req[index].request.CodedValue[paramNumber].trams[codedCounter].valueName)); 
       QObject::connect(reqComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(on_tableCombobox_currentIndex()); 
      } 
      ui.tableWidget->setCellWidget(rowNumber,1,reqComboBox); 

     } 
    } 
} 
+0

使用調試器來找出發生了什麼... – UmNyobe 2012-03-15 09:54:07

+0

我已經嘗試過,但一切似乎確定,我們必須啓用增量? – mehmetozer 2012-03-15 09:56:30

回答

1

使用qDebug才能看到多少次的循環執行。也許這是隻執行一次:

#include <QDebug> 
... 
     rowNumber++; 
     qDebug() << rowNumber; 
... 

嘗試以下操作:

for (int i=0; i<ui.tableWidget->rowCount(); i++) 
{ 
     ui.tableWidget->setCellWidget(i,1,new QLineEdit); 
} 

多少行的編輯看到了嗎?

請注意,您應該使用setRowCount來設置表格窗口小部件的行數。

+0

我真的試過了,我可以看到它改變:(沒有問題, – mehmetozer 2012-03-15 10:35:06

+0

非常感謝它與setRowCount()一起工作。 – mehmetozer 2012-03-15 12:45:47