将QComboBox中的选定项目显示为QTableView行

问题描述

遇到以下问题:setView QTableView时在QComboBox显示所选项目:

一个QComboBox,您需要在其中显示带有QTableView所有列的所选项目。 像这样的东西:

QTableView list

根据需要

或者至少类似于setModelColumn那样以文本形式(3 | BMW | BW1234)来表示,只需要以选定记录(行)的形式显示几列。

任何人都可以在QComboBox中看到所选项目的类似显示吗?

示例演示代码

QString indexes[] = { "1","3","6" };
QString brands[] = { "Ford","BMW","Citroen" };
QString numbers[] = { "F1234","BW1234","CI1234" };
QStandardItemmodel* model = new QStandardItemmodel;

for (int i = 0; i < 3; i++) {
    model->setItem(i,new QStandardItem(indexes[i]));
    model->setItem(i,1,new QStandardItem(brands[i]));
    model->setItem(i,2,new QStandardItem(numbers[i]));
}

QTableView* tableView = new QTableView(this);
QComboBox* comboBox = new QComboBox(this);

tableView->setSelectionMode(QAbstractItemView::SingleSelection);
tableView->setSelectionBehavior(QAbstractItemView::SelectRows);

tableView->resizeColumnsToContents();
tableView->resizeRowsToContents();
tableView->setMinimumWidth(tableView->horizontalHeader()->length());

comboBox->setView(tableView);
comboBox->setModel(model);
comboBox->setMinimumWidth(tableView->horizontalHeader()->length());

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)