#python #pyqt5
#python #pyqt5
Вопрос:
Я пытаюсь создать кнопку отмены и повтора внутри приложения с графическим интерфейсом, используя PyQt5 и Python 3.7.
При нажатии кнопок отмены и повтора должны выполняться последовательности клавиш «Ctrl Z» и «Ctrl Y» соответственно. Я поверхностно просмотрел документацию QShortcut и QKeySequence, но они, похоже, предназначены для обнаружения ключевых последовательностей, а не для их запуска. Итак, как мне реализовать эти кнопки?
Согласно комментарию эйлланеска, я добавляю это, чтобы лучше объяснить, чего я пытаюсь достичь.
self.undoButton = self.findChild(QtWidgets.QPushButton, 'undoButton')
self.undoButton.clicked.connect(self.undoButtonPressed)
self.anyPlainTextEdit = self.findChild(QtWidgets.QPlainTextEdit, 'anyPlainTextEdit')
# Function to Execute Key Sequence
def undoButtonPressed(self):
# Execute Ctrl Z Key Sequence
Мне интересно, возможно ли это вообще.
Если нет, должен ли я сохранять предыдущие и текущие значения PlainTextArea в отдельных переменных и соответствующим образом устанавливать значение PlainTextArea?
Ответ №1:
Вам не нужно запускать ярлык, чтобы включить повтор или отмену, просто вызовите слот redo()
и undo()
при нажатии кнопок:
self.undoButton.clicked.connect(self.anyPlainTextEdit.undo)
self.redoButton.clicked.connect(self.anyPlainTextEdit.redo)
Комментарии:
1. Большое спасибо. Я нашел это после того, как вы предоставили решение: ссылка