Выполнение последовательности клавиш при нажатии кнопки

#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. Большое спасибо. Я нашел это после того, как вы предоставили решение: ссылка