2012-03-15 4 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

+0

私は試しましたが、すべてがOKだと思われますが、増分でsthを有効にする必要がありますか? – mehmetozer

答えて

1

を使用して、forループが何回実行されたかを確認します。おそらくそれは一度だけ実行されます。

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

は、以下のことを試してみてください。

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

あなたはどのように多くの行編集を見ていますか?

表ウィジェットの行数を設定するには、setRowCountを使用する必要があります。

+0

私は本当に試してみましたが、それが変わるのを見ることができます:(それに問題はありません – mehmetozer

+0

ありがとう、setRowCount()でうまくいきました。 – mehmetozer

関連する問題