Comment puis je faire pour ajouter des "points d'enregistrement" au stack de sauvegardes des undo/redo d'un QTextEdit?
Comment puis je faire pour ajouter des "points d'enregistrement" au stack de sauvegardes des undo/redo d'un QTextEdit?
Si tu veux juste agir au moment d'un UnDo ou Redo, tu peux faire comme suit (après à toi de gérer les enregistrements) :
Il me semble que le CTRL+Z et le CTRL+Y sont utilisés sous Windows et Ubuntu. Pour Mac, je ne sais pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 # -*- coding: utf-8 -*- from PyQt4 import QtCore, QtGui class textPlus(QtGui.QTextEdit): def keyPressEvent(self, event): if event.key() == QtCore.Qt.Key_Z: if event.modifiers() and QtCore.Qt.ControlModifier: print 'Un UnDo' if event.key() == QtCore.Qt.Key_Y: if event.modifiers() and QtCore.Qt.ControlModifier: print 'Un ReDo' QtGui.QTextEdit.keyPressEvent(self, event) class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(395, 292) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget) self.verticalLayout.setObjectName("verticalLayout") self.textEdit = textPlus() self.textEdit.setObjectName("textEdit") self.verticalLayout.addWidget(self.textEdit) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 395, 21)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8)) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) MainWindow = QtGui.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())
Salut, en fait, ce que je souhaite faire, c'est rajourter des "points de sauvegarde". Je me suis rendu compte que si je colle deux fois de suite la même chose, si je fais un "undo", il revient avant le 1er collage. Je voudrais revenir "un collage en arrière "et pas deux comme c'est le cas. En d'autre termes, comment fait on un enregistrement de l'état du QtextEdit pour y revenir en faisant "undo"?
Hum au temps pour moi. Là comme ça je ne sais pas comment faire. Peut-être peux-tu essayer d'enregistrer à intervalle de temps régulier.
Je garde ta question sous le coude quand j'aurais cinq minutes ou une heure...![]()
Juste avant d'aller skier, je te propose de regarder ici http://www.riverbankcomputing.co.uk/....html#revision sans garantie que ce soit la bonne piste.
Si tu y arrives, je serais intéressé par ta méthode.
sauf erreur de ma part, ce n'est malheureusement pas la bonne piste...
Tout ce que j'ai pu glaner comme info est à la fin de la description mais je n'ai trouvé nulle part comment faire un "enregistrement"!
http://www.riverbankcomputing.co.uk/...t.html#details
je continue à chercher...
[EDIT]
peut etre ici la bonne piste, mais le lien est mort :
cliquer sur Qt Undo Framework de la page :
http://www.riverbankcomputing.co.uk/...#undoAvailable
Je pense que c'est du coté de la classe Qundo....
ça a l'air intéressant mais je ne sais pas comment l'utiliser...
QUndoStack.push()
Partager