Sto visualizzando un menu popup per selezionare alcuni valori in un QTableWidget. L'elemento più basso è una voce "Modifica lista", quando lo seleziono una nuova finestra dovrebbe apparire automaticamente e il QComboBox dovrebbe scomparire e la cella tornare a uno stato Qt :: DisplayRole.Come posso dire a un QTableWidget di terminare la modifica di una cella?
Ora Qt ha tutte quelle belle API-chiamate come QTableWidget.edit()
e QTableWidget.editItem()
, quello che sto veramente cercando è un QTableWidget.endEditing()
, preferibilmente senza che specifica l'indice della cella, anche se ho potuto ottenere che l'utilizzo di questa chiamata:
table.currentIndex()
... ma non so se posso garantire che la cella corrente sia la cella in corso di modifica in ogni momento.
Esiste un'API per chiudere questo tipo di editor?
tuo il primo ha funzionato, il secondo no. Non importa che perda messa a fuoco perché mostro una finestra di dialogo modale. Segnerò questa risposta come corretta se nessuno sta per proporre una soluzione più naturale. –
Ho appena fatto un esempio per testare EditTriggers e sembra funzionare (C++, Qt 4.4.3). Posso cliccare su ogni cella e così via, ma non posso fare doppio clic su di essi per modificare o qualcosa del genere. Non so perché non funzioni per te. * shrug * –
Si tratta di chiudere l'editor, non essere in grado di modificarlo. La prossima volta che si fa doppio clic dovrebbe aprire di nuovo l'editor. –