如何在qtablewidget中获取组合框的文本?

时间:2013-05-13 09:47:59

标签: qt

我是Qt的新手,我需要帮助在表格小部件中获取组合框的值。

我使用“setCellWidget”将一个组合框(在我的例子中,它的名字是“settingA”)添加到一个表格小部件(名称为“tableWidget_4”):


QComboBox* settingA = new QComboBox();


settingA->addItem("100");
settingA->addItem("200");

ui->tableWidget_4->setColumnCount(1);
ui->tableWidget_4->setRowCount(3);
ui->tableWidget_4->setCellWidget ( 0, 0, settingA );

我想做的是: 当单击一个按钮(在我的例子中它的名称是“ApplyComboButton”)时,我希望组合框(settingA)的值可以保存到QStringList(InputComboData)中,这就是我尝试这样做的方法:


void MainWindow::on_ApplyComboButton_clicked()
{
 QStringList InputComboData;

 InputComboData << ui->tableWidget_4->item(0,0)->text();

}  

它失败了。 我怎样才能获得组合框的价值?

2 个答案:

答案 0 :(得分:1)

您可以使用QTableWidget::cellWidget ( int row, int column )函数来获取QComboBox小部件。使用qobject_cast将其强制转换为QComboBox,并使用currentText()函数获取文本。

QComboBox *myCB = qobject_cast<QComboBox*>(ui->tableWidget_4->cellWidget(0,0));
InputComboData << myCB->currentText();

答案 1 :(得分:0)

使用QTableWidget的cellWidget为您设置为cellWidget的小部件获取QWidget *(不要忘记使用qobject_cast或dynamic_cast将指针强制转换为QCombobox *)