2014-03-12 42 views
1

我實現了QTableWidget的自定義委託來編輯像QComboBox這樣的單元數據。 所有的作品都很好,除了一個。QTableWitget中的QComboBox無法正常工作

當用戶選擇組合框中的某些內容時,用戶將選擇另一個單元時不應用此更改。 未調用自定義委託的方法QStyledItemDelegate :: setModelData()。所以,用戶的更改不適用。

我應該怎麼做,在用戶做出選擇後,在組合框中應用值?

回答

4

當您想要將數據寫入模型時,您的代表應發送commitData信號。它會導致呼叫setModelData。在你的情況下,當小部件發出QComboBox::currentIndexChanged信號時,你需要發出commitData

+0

謝謝!我可以解決這個任務沒有信號,因爲我不使用moc? – kaa

+0

這絕對是一個正確的答案,我只是想知道你在使用Qt時不能使用moc的原因是什麼?根本沒有冒犯性,如果在任何情況下適用這種方法,我真的很感興趣。 – evilruff

+0

Qt 5允許使用沒有moc的信號和插槽。參見[Qt 5中的新信號插槽語法](http://qt-project.org/wiki/New_Signal_Slot_Syntax)。 –