我在QComboBox
中有QTableWidget
。它是这样创建的:
QComboBox* bb = new QComboBox(this);
ui->propsWidget->setCellWidget(1, 0, bb);
for (...)
bb.addItem(...);
我需要以编程方式设置其索引。我已经试过了:
QComboBox* bb = qobject_cast<QComboBox*>(ui->propsWidget->cellWidget(1, 0));
bb->setCurrentIndex(5);
和此:
bb->setEditText("mytext"); // "mytext" is contained in bb
但是当前索引没有改变。我该怎么办?
您需要修改以下行:QComboBox* bb = new QComboBox(this);
,因为QTableWidget
拥有其所有子组件的所有权。因此,它必须变为QComboBox* bb = new QComboBox();
,并且父级将成为单独的表。