Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*I'm trying to make a QComboBox display a short value (e.g., '1', '2', or '3'), yet have the dropdown from the combo box display longer values such as "Number One", "Number Two", etc...
- Here's what I have ...
- */
- {
- QString max_dropdown_len, styleSheet;
- max_dropdown_len = QString::number(300);
- styleSheet = "QComboBox QAbstractItemView { min-width: %1; }";
- QComboBox *cb = new QComboBox(this);
- QStandardItemModel *model = new QStandardItemModel(this);
- model->setColumnCount(2);
- model->appendRow(QList<QStandardItem*>() <<
- (new QStandardItem("1")) << (new QStandardItem("Number 1")));
- model->appendRow(QList<QStandardItem*>() <<
- (new QStandardItem("2")) << (new QStandardItem("Number 2")));
- model->appendRow(QList<QStandardItem*>() <<
- (new QStandardItem("3")) << (new QStandardItem("Number 3")));
- QListView *view = new QListView(this);
- view->setModelColumn(1);
- cb->setModel(model);
- cb->setView(view);
- cb->setModelColumn(0);
- cb->setStyleSheet(styleSheet.arg(max_dropdown_len));
- layout = new QFormLayout;
- layout->addRow(new QLabel(tr("Test: ")), cb);
- group = new QGroupBox(tr("Dx RST Report"));
- group->setLayout(layout);
- }
- /* The problem is that the combobox displays a 1, and when I activate the dropdown, all the values show 1, 2, 3 instead of "number 1", "number 2", "number 3".
- */
Advertisement
Add Comment
Please, Sign In to add comment