我有QTableView其中的一列有QComboBox。當我點擊一個按鈕時,組合框正在顯示來自一個向量的數據。 當我啓動應用程序時,組合框將顯示矢量中的所有項目。現在我按下按鈕(向矢量添加更多項目),但組合框不反映矢量中的新數據。它仍然顯示舊數據。一旦矢量更新,我也會發射dataChanged(),但我沒有看到任何更改。 data()函數在返回vector的所有元素的模型中確實獲得調用,但setEditorData在委託中沒有獲得調用。如何刷新QTableView中QCombobox的內容
我錯過了什麼。
感謝,
開發
如果我理解正確,您想更改QComboBox下拉列表中的項目?如果是這樣,您必須手動更新它們,因爲它不會跟蹤對其設置的項目列表的更改。如果你發佈一些代碼,你會如何設置矢量到comboBox以及如何更新它,這將有所幫助。 – firescreamer
是的,我想在矢量更新時更改QComboBox中的項目。 這是我做的,我有一個向量,我在初始化時添加3個項目。在模型的:: data()中,我返回包含這些項目的QStringList。它顯示正常。 現在,我只需點擊按鈕即可在矢量中添加更多項。我還在向量中添加新項目之後發出模型的dataChanged()。 我想我將不得不在模型中捕獲該信號並更新組合框的內容。讓我知道是否有更好的方法來做到這一點。謝謝 – dev