當構造一個QComboBox()
,該模型是初始的「空」(即沒有附加模型)。在分配模型QComboBox::setModel()
後,附上模型。現在,我需要將QComboBox
模型重置爲之前的狀態:「空」或「無」。集QComboBox模型爲無
我有一個叫chbW1
的QCheckBox
以及名爲cbWaehrung1
的QComboBox。在檢查QCheckBox
之前,未附加任何型號,並且QComboBox
爲空。如果選中QCheckBox
,我將QComboBox
的型號設置爲wmodel
。這部分工作。
現在,如果我取消選中QCheckBox
,我希望QComboBox
返回到先前的狀態(空)。但它只會被禁用(通過代碼,見下文),保持其索引和文本。如果我再次打開它(檢查QCheckbox
),舊值(索引和文本)仍然存在。
這是Qt的5.6 - 在「其他」部分似乎不工作:像
ui->cbWaehrung1->setModel(QAbstractItemModel());
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();
}
}
我也嘗試過的東西,但是這給在編譯時錯誤:
invalid cast to abstract class type ‘QAbstractItemModel’ ui->cbWaehrung2->setModel(QAbstractItemModel()); ^
另外:
ui->cbWaehrung1->setModel(0);
這在運行時產生一個錯誤:
不能設置0模型
如何才能做到這一點?
謝謝。看起來像我去那個第二版。想升職但我的「聲譽」太低。多麼奇怪;-) – WKarl
如果答案對您有幫助,您可以將其標記爲已接受(在投票箭頭中使用勾號符號)。我很驚訝,即使您還沒有投票決定其他任何事情,您也無法向自己的問題答覆。至少你可以評論這樣的答案。你很快就會有足夠的聲譽,所以不要太擔心! –