SRD

cb

SRD
Apr 28th, 2018
374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.41 KB | None | 0 0
  1. /*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...
  2.  
  3. Here's what I have ...
  4. */
  5.  
  6. {
  7.     QString max_dropdown_len, styleSheet;
  8.  
  9.     max_dropdown_len = QString::number(300);
  10.     styleSheet = "QComboBox QAbstractItemView { min-width: %1; }";
  11.  
  12.     QComboBox *cb = new QComboBox(this);
  13.  
  14.     QStandardItemModel *model = new QStandardItemModel(this);
  15.     model->setColumnCount(2);
  16.     model->appendRow(QList<QStandardItem*>() <<
  17.         (new QStandardItem("1")) << (new QStandardItem("Number 1")));
  18.     model->appendRow(QList<QStandardItem*>() <<
  19.         (new QStandardItem("2")) << (new QStandardItem("Number 2")));
  20.     model->appendRow(QList<QStandardItem*>() <<
  21.         (new QStandardItem("3")) << (new QStandardItem("Number 3")));
  22.  
  23.     QListView *view = new QListView(this);
  24.     view->setModelColumn(1);
  25.                
  26.     cb->setModel(model);
  27.     cb->setView(view);
  28.     cb->setModelColumn(0);
  29.     cb->setStyleSheet(styleSheet.arg(max_dropdown_len));
  30.  
  31.     layout = new QFormLayout;
  32.     layout->addRow(new QLabel(tr("Test: ")), cb);
  33.  
  34.     group = new QGroupBox(tr("Dx RST Report"));
  35.     group->setLayout(layout);
  36. }
  37.  
  38. /* 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".
  39. */
Advertisement
Add Comment
Please, Sign In to add comment