2

我是 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();

}  

它失败了。如何获得组合框的价值?

4

2 回答 2

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();
于 2013-05-13T09:58:58.900 回答
0

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

于 2013-05-13T09:57:10.880 回答