0

テーブルウィジェットにウィジェットを追加しようとしています。以下のコードを試していますが、プログラムを実行するたびに、最初のウィジェットが追加されますが、残りは追加されません。この状況で私を助けてくれませんか?

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

        }
    }
}
4

1 に答える 1

1

qDebugfor ループが実行された回数を確認するために使用します。おそらく一度だけ実行されます:

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

次のことを試してください。

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

何行の編集が見られますか?

setRowCountテーブル ウィジェットの行数を設定するには、を使用する必要があることに注意してください。

于 2012-03-15T10:32:24.333 に答える