jmalicke
3rd November 2014, 23:49
I have implemented a custom QTableView and QAbstractTableModel. The QTableView uses the Qt-default text line edit delegate for manipulating string data. I would like to ensure that, after submitting an edit (pressing enter), the string is unique for its column. If another row has the same value for that column, the edit will be rejected, perhaps with a popup box, and then the text line edit will be programmatically put back into edit mode so the user can try again.
I have thought about using a custom delegate and possibly communicating between the delegate and the table view via signal and slots. The delegate could ensure that the value is unique. To do this it would have to be injected with knowledge about the other columns. If the value is not unique, the delegate could emit a signal that the table view would pick up; something like "notUniqueTryAgain()". Inside that slot the table would pop up a message and then call edit() on the cell. Is this the right way to go?
I have thought about using a custom delegate and possibly communicating between the delegate and the table view via signal and slots. The delegate could ensure that the value is unique. To do this it would have to be injected with knowledge about the other columns. If the value is not unique, the delegate could emit a signal that the table view would pick up; something like "notUniqueTryAgain()". Inside that slot the table would pop up a message and then call edit() on the cell. Is this the right way to go?