Sto imparando a utilizzare Qt per lo sviluppo della mia applicazione & Sono abbastanza riuscito nello sviluppo della mia Applicazione. Ora voglio implementare funzionalità Annulla Ripristina per la mia applicazione. Il doc per questo argomento ha poche informazioni. Ho persino provato a capire dai 2 esempi dell'SDK. Ma mi sto divertendo a capire come funziona. Qualcuno si può prendere la briga di spiegarmi come implementarlo? Nella mia applicazione ci sono vari stati per i quali voglio fornire questa funzionalità. Quindi la spiegazione può essere dal punto di vista generale? Se ci sono già articoli su internet che spiegano lo stesso, per favore informami di loro. Questo sarebbe molto utile. Grazie.Impossibile comprendere Annulla Redo Framework in Qt
risposta
Ci sono 2 classi principali: QUndoCommand e QUndoStack;
- QUandoCommand è la classe base della classe di comando. Devi implementare undo() e redo() te stesso.
- QUndoStack è fondamentalmente un contenitore di oggetti QUndoCommand, con metodi extra, come la creazione di QAction, interrogare undo/redo testo del QUndoCommand corrente (funzionalità semplici che lei stesso può implementato facilmente)
Quello che dovete fare è:
- Implementare i comandi. È necessario decidere come implementare la ripetizione/annullamento in base alle proprie esigenze. class AppendText è un buon esempio: http://qt-project.org/doc/qt-5.0/qtwidgets/qundocommand.html
- Conserva un'istanza QUndoStack per ogni documento (o un'istanza se nell'applicazione è presente un solo documento).
- Supponiamo di avere una classe di comando "AppendText" e un pulsante "Aggiungi" nell'interfaccia utente. Se si fa clic sul pulsante "Aggiungi", è necessario creare un'istanza del comando AppendText e chiamare QUndoStack :: push (appendCmd). QUndoStack :: push() chiamerà AppendText :: redo() prima e poi lo metterà nel contenitore per annullare.
Questo è tutto.
Yup Ho capito alcuni frammenti ma non riesco a capire perché dovrei usare Qt Undo Redo Framework allora? Non sarebbe più conveniente implementare la mia classe che ha tutta la cronologia della sessione e poi annullare/ripristinare secondo lo stato? Tutto quello che voglio chiedere è ciò che ottengo dal framework integrato di Qt rispetto al mio framework personalizzato per la mia applicazione? –
Per le app semplici, il framework di annullamento di qt può far risparmiare molto tempo. Ma se hai una soluzione migliore per il tuo caso, fallo. Non c'è nulla di misterioso in qt annullare il framework che ti costringe a usarlo. – Chen
ok grazie per l'aiuto. –
- 1. Implementazione di Annulla - Ripristina funzionalità in Qt?
- 2. Impossibile utilizzare Annulla in TextChanged
- 3. Annulla/Ripristina in WPF?
- 4. Realm offre undo/redo come CoreData?
- 5. per l'implementazione di undo/redo in clojure
- 6. Personalizza il pulsante Annulla del framework Twitter
- 7. Qt Installer Framework: Auto Update
- 8. Qt: impossibile impostare il layout in QMainWindow
- 9. Impossibile usare libclang con Qt
- 10. Redo scorciatoia da tastiera per Eclipse
- 11. Ruby's redo method vs while loop
- 12. collegamento mac framework al creatore qt
- 13. Entity Framework - Start Over - Annulla/Ripristina tutte le migrazioni
- 14. Impossibile comprendere l'output dei metodi con parametro facoltativo
- 15. Impossibile comprendere il risultato per il regex multilinea qr/(. $. +)/Xms
- 16. Comprendere BufferStrategy
- 17. Annulla in binding WPF
- 18. Annulla sessione in SilverStripe
- 19. Qt Impossibile aprire il file include: 'QPrinter'
- 20. Qt MySQL Query - Impossibile legare il valore
- 21. Qt: impossibile eseguire '': l'operazione richiesta richiede l'elevazione
- 22. Impossibile avviare il programma. Percorso o permessi errati? in Qt
- 23. impossibile installare wkhtmltopdf con qt patchato in ubuntu 16.04
- 24. struttura dati utilizzata per implementare l'opzione UNDO e REDO
- 25. Annulla rimuovi file in ClearCase
- 26. Annulla Chiudi scheda in Vim
- 27. Annulla slow scaricare in python
- 28. Annulla finestra divisa in Vim
- 29. Annulla modifiche dom in JS
- 30. annulla un invio in jquery?
Cosa non capisci? Classi specifiche? Panoramica? – Synxis
Posso capire le 4 classi e qual è il loro scopo, ma non so come usarle, come ad esempio QUndoCommand. –