如何使用QTableView使用现场QCOMBOBOX
How to use in-place QComboBox with a QTableView
我正在使用QTableView
,我想在每个单元格的第三列中添加QComboBox
。将有数千个单元格,所以我选择了一个编辑器解决方案。我希望在用户通过单击进入单元格或用户使用箭头键在第3列中选择单元格时显示组合框。
void FixtureCalibrationPage::on_View_clicked(const QModelIndex & index)
{
if(!index.isValid()) return;
if(index.column() != 3) return;
if(selected_table_row == index.row()) return;
if(selected_table_row != -1) { //clean up
ui.view->setIndexWidget(index, NULL);
}
selected_table_row = index.row();
ui.view->setIndexWidget(index, &m_combo_box_selection); //set the
}
单击不涵盖使用箭头键的情况。我是手动检查用户是否按下箭头键的唯一选择还是已经存在其他解决方案?
这就是代表的目的。为视图创建一个委托对象,并使用setItemDelegateForColumn
在第三列上设置它。请注意,代表不得通过多个视图共享。每个观点都需要自己的代表。代表成为观点的孩子是有意义的。
在您的委托中,您将在createEditor
方法的实现中创建组合框。您当然需要实现setEditorData
,setModelData
等。
相关文章:
- 在QComboBox或QListWidget中设置所选元素的样式文本?
- 如何在QGridLayout中获取QComboBox的当前文本?
- 如何更改QComboBox项目的高度大小?
- Qt 错误:QSqlQuery::value:尝试从表中检索统计信息时未定位在有效记录上 (QComboBox)
- 错误:"类 QComboBox"没有名为"setCurrentText"的成员;
- 如何获得QTreeWidgetItem中QComboBox索引更改的通知?
- 将 QList 转换为 QStringList 以插入到 QComboBox 中
- QT - 如何从 QVector<QComboBox* 获取信号"currentIndexChanged">
- 如何使用QTreeView在QComboBox中选择项目
- 点击QComboBox的下拉列表
- Qcombobox 如何更改行编辑的文本
- QCombobox,字符串旁边有项目的其他数据
- QComboBox not triggered
- 更改 QComboBox 项的光标形状
- Qcombobox :: ShowPopup()从其Qlineedit中窃取了焦点
- 在修改项目列表时,请防止可编辑的Qcombobox选择更改
- 如何使用QItemSelectionModel为QComboBox
- QComboBox 在 editTextChanged 和 currentIndexChanged 之间的关系
- 在 QComboBox 中切换复选框
- 如何使用QTableView使用现场QCOMBOBOX