Как переключить состояние цикла while в Python с использованием библиотек pyautogui и pyqt5?

Как мне реализовать возможность приостановки и возобновления выполнения бесконечного цикла в функции, которая уже имеет возможность остановки?
  • 31 марта 2024 г. 5:09
Ответы на вопрос 1
Для реализации возможности приостановки и возобновления выполнения цикла в Python с использованием библиотек pyautogui и pyqt5, можно использовать флаг, который будет управлять состоянием цикла. Вот пример кода, который демонстрирует это:

```python
import pyautogui
from PyQt5.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget

class MyWidget(QWidget):
    def __init__(self):
        super(MyWidget, self).__init__()
        self.initUI()

    def initUI(self):
        self.buttonStart = QPushButton('Start', self)
        self.buttonStart.clicked.connect(self.start_loop)

        self.buttonStop = QPushButton('Stop', self)
        self.buttonStop.clicked.connect(self.stop_loop)

        self.buttonPause = QPushButton('Pause/Resume', self)
        self.buttonPause.clicked.connect(self.pause_resume)

        layout = QVBoxLayout()
        layout.addWidget(self.buttonStart)
        layout.addWidget(self.buttonStop)
        layout.addWidget(self.buttonPause)
        
        self.setLayout(layout)

        self.flag = True

    def start_loop(self):
        self.flag = True
        while self.flag:
            # Ваш код с использованием pyautogui
            print("Loop is running...")

    def stop_loop(self):
        self.flag = False

    def pause_resume(self):
        self.flag = not self.flag

if __name__ == '__main__':
    app = QApplication([])
    widget = MyWidget()
    widget.show()
    app.exec_()
```

В этом примере создается простой графический интерфейс с тремя кнопками: "Start", "Stop" и "Pause/Resume". При нажатии на кнопку "Start" запускается цикл выполнения кода с использованием pyautogui. Кнопка "Stop" останавливает выполнение цикла, а кнопка "Pause/Resume" приостанавливает либо возобновляет выполнение цикла.

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