【发布时间】:2023-03-15 14:20:01
【问题描述】:
我正在尝试让 QComboBox 显示一个较短的值(例如,“1”、“2”或“3”),但让组合框的下拉列表显示较长的值,例如“数字一”, “二号”或“三号”。
这就是我所拥有的......
QString max_dropdown_len, styleSheet;
max_dropdown_len = QString::number(300);
styleSheet = "QComboBox QAbstractItemView { min-width: %1; }";
cb = new QComboBox();
model = qobject_cast<QStandardItemModel*>(cb->model());
model->setColumnCount(2);
model->appendRow(QList<QStandardItem*>() <<
(new QStandardItem("Number One")) << (new QStandardItem("1")));
model->appendRow(QList<QStandardItem*>() <<
(new QStandardItem("Number Two")) << (new QStandardItem("2")));
model->appendRow(QList<QStandardItem*>() <<
(new QStandardItem("Number Three")) << (new QStandardItem("3")));
view = qobject_cast<QListView*>(cb->view());
view->setModelColumn(0);
cb->setModelColumn(1);
cb->setStyleSheet(styleSheet.arg(max_dropdown_len));
aLayout = new QFormLayout;
aLayout->addRow(new QLabel(tr("Test: ")), cb);
aGroup = new QGroupBox(tr("Testing"));
aGroup->setLayout(aLayout);
return aGroup;
问题是,组合框只显示一个“1”,当我单击箭头下拉列表时,选项是“1”、“2”或“3”,而不是较长的字符串值.
我这样做是为了显示一个短值吗?想法?
【问题讨论】: