Переопределил стандартный view у QComboBox по этому примеру:
// создаем и настраиваем модель
QStandardItemModel *model = new QStandardItemModel;
model->setItem(0, 0, new QStandardItem("111"));
model->setItem(0, 1, new QStandardItem("Name 1"));
model->setItem(1, 0, new QStandardItem("222"));
model->setItem(1, 1, new QStandardItem("Name 2"));
// создаем и настраиваем view
QTableView *coilView = new QTableView(this);
coilView->setSelectionBehavior(QAbstractItemView::SelectRows);
coilView->horizontalHeader()->setStretchLastSection(true);
coilView->verticalHeader()->setStretchLastSection(true);
coilView->verticalHeader()->hide();
coilView->horizontalHeader()->hide();
coilView->setColumnWidth(0, 50);
ui->comboBox->setView(coilView);
ui->comboBox->setModel(model);
// присоединяю слот для обработки textChanged
connect(ui->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(textChanged(int)));
В результате в выпадающем списке получаю следующее:
По умолчанию значение в комбобоксе устанавливается по первому столбцу (т.е. по коду). А мне нужно сделать так, чтоб в свёрнутом комбобоксе отображалось имя, а не код.
Я пробовал сделать через сигнал currentIndexChanged(int index)
:
void MainWindow::textChanged(int index)
{
QStandardItemModel *model = qobject_cast<QStandardItemModel*>(ui->comboBox->model());
QString name = model->item(index, 1)->text();
QLineEdit *line = ui->comboBox->lineEdit();
qDebug() << name; // ОК! в выводе приложения вижу корректное имя
line->setText(name); // и тут программа падает....
}
Как правильно изменить строку, которая записывается в LineEdit?
ui->comboBox->setModelColumn(1);
см. QComboBox::modelColumn
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Суть проблеми в том что у меня есть две модели, при одной модели Edit работаеш хорошо но когда добавил вторую модель с таким же функционалом...
На основном экране есть "шапка" с навигацией, которая будет одинаковой (headxml)
У меня есть несколько AutoCompleteTextViewИ класс в котором они находятся реализует интерфейс AdapterView
У меня есть файл в 175 мб, и где-то в середине все ломается ( то есть до этого понятное дело нормально проходит)