如何在 Qtableview 中获取选定组合框的行值?

How to get rowvalue of selected combobox in Qtableview?

我有 Qtableviews,我在 table2 中添加了组合框,在 combobox 中添加了从 table1 col0 获取的值,所以当用户 select item in combo2 时,我需要获取 selected 的行值项目?

  1. 如何使用 indexwidget?

  2. 获取行值后,我可以比较组合框文本并执行计算。 因为我分享的是工作但是当用户 select 2 行中的相同值(差异)组合框然后它不工作(没有在 2 时间获取数据)。

void Gear_model::calR2() {
QAbstractItemModel* table1 = ui.tableView->model();
QAbstractItemModel* table2 = ui.tableView_2->model();
QComboBox* combo2;
QString col2;
for (int irowsl = 0, maxI = table2->rowCount(); irowsl < maxI; ++irowsl)
{
    const QModelIndex idx1 = table2->index(irowsl, 2);
    combo2 = qobject_cast<QComboBox*>(ui.tableView_2->indexWidget(idx1)); 
    col2 = combo2->currentText();
    for (int irowsM = 0, maxI = table2->rowCount(); irowsM < maxI; ++irowsM) {
        qDebug() << "combo2 =" << col2;                                        
        if (col2 == table1->data(table1->index(irowsM, 0)).toString()) {
            double pitchradius2 = table1->data(table1->index(irowsM, 6)).toDouble();
            table2->setData(table2->index(irowsl, 10), radius2);
            qDebug() << "R2 =" << col2 << radius2;
        }
    }
 }

无法弄清楚如何获取每行组合框的 selected 值?

我找到了解决办法 combo2之后 我加了

if (combo2!=NULL) {
//my previous code
}