我是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();
}
它失败了。 我怎样才能获得组合框的价值?
答案 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 *)