При построении QComboBox()
модель изначально «пуста» (т. Е. Не подключена модель). После присвоения модели QComboBox::setModel()
модель прилагается. Теперь мне нужно сбросить модель QComboBox
в предыдущее состояние: «empty» или «none».Установите модель QComboBox равным
У меня есть QCheckBox
под названием chbW1
рядом с QComboBox под названием cbWaehrung1
. Перед тем, как проверить QCheckBox
, модель не подключена, а QComboBox
пуст. Если проверяется QCheckBox
, я устанавливаю модель QComboBox
в wmodel
. Эта часть работает.
Теперь, если я сниму QCheckBox
, я хочу вернуть QComboBox
в предыдущее состояние (пустое). Но он только отключается (по коду, см. Ниже), сохраняет свой индекс и текст. Если я снова включу его (проверьте QCheckbox
), старое значение (индекс и текст) все еще есть.
Это Qt 5.6 - The "еще" часть, кажется, не работает:
void MainWindow::on_chbW1_toggled(bool checked)
{
ui->cbWaehrung1->setEnabled(checked);
if (checked) {
// working
ui->cbWaehrung1->setModel(this->wmodel);
ui->cbWaehrung1->setModelColumn(1);
ui->cbWaehrung1->setFocus();
} else {
// not working
ui->cbWaehrung1->clear();
ui->cbWaehrung1->clearEditText();
}
}
Я также пытался что-то вроде
ui->cbWaehrung1->setModel(QAbstractItemModel());
Но это дает ошибку во время компиляции:
invalid cast to abstract class type ‘QAbstractItemModel’ ui->cbWaehrung2->setModel(QAbstractItemModel()); ^
также:
ui->cbWaehrung1->setModel(0);
Это приводит к ошибке во время выполнения:
не может установить 0 модель
Как это может быть сделано?
Спасибо. Похоже, я иду на эту вторую версию. Хотелось бы поддержать, но моя «репутация» слишком низкая. Как странно ;-) – WKarl
Если ответ вам поможет, вы можете пометить его как принятый (используйте знак тика стрелками голосования). Я удивлен, что вы не можете перенести ответы на свои вопросы, даже если вы еще не можете проголосовать ни на что другое. По крайней мере, вы можете прокомментировать такие ответы. У вас скоро будет достаточно репутации, так что не беспокойтесь слишком много! –