微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决将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 举报,一经查实,本站将立刻删除。