Как выполнить функцию с Pyqt5 keyPressEvent один раз

Рейтинг: -3Ответов: 1Опубликовано: 06.04.2023
    import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication


class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.flag = True

    def keyPressEvent(self, event):
        if event.key() == Qt.Key_E:
            print('pineapple')

        if event.key() == Qt.Key_Q:
            print('apple')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = Example()
    w.show()
    sys.exit(app.exec_())

После нажатия на любую из клавиш выводиться текст, после этого, при повторном нажатии эта функция не должна работать

Ответы

▲ 0Принят
    import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication

class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.flag = True

    def keyPressEvent(self, event):

        if event.key() == Qt.Key_E and self.flag:
            print('pineapple')
            self.flag = False

        if event.key() == Qt.Key_Q and self.flag:
            print('apple')
            self.flag = False

if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = Example()
    w.show()
    sys.exit(app.exec_())

Вот так)