Цель - сделать автокликер на PyQt6, в котором, количество кликов будут вводится через QLineEdit или QSpinBox (QDoubleSpinBox), то есть, данные, введённые в QLineEdit или QSpinBox, должны присваиваться переменной, которая будет задавать количество кликов. Пробовал много способов, но ничего не получалось. Вот код:
import sys
from PyQt6.QtCore import Qt
from PyQt6.QtWidgets import (
QApplication,
QDoubleSpinBox,
QLabel,
QLineEdit,
QMainWindow,
QPushButton,
QSpinBox,
QVBoxLayout,
QWidget,
)
import keyboard
import mouse
import time
m = 0
isClicking = False
# a123 - переменная, которая должна хранить в себе количество кликов
def set_clicker(a123): # set_clicker - тело кликера
m = 1
while m <= a123:
mouse.double_click(button='left')
time.sleep(0.01)
m = m + 1
print(m)
keyboard.add_hotkey('*', set_clicker)
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("AutoClicker")
l = QVBoxLayout()
label = QLabel("Введите количество кликов")
l.addWidget(label)
label.setAlignment(Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignVCenter)
widget = QDoubleSpinBox() # Здесь должен быть QLineEdit или QSpinBox\QDoubleSpinBox, в который будет вводится количество кликов и присваиваться в переменную a123
l.addWidget(widget)
widget.setMinimum(0)
widget.setMaximum(99999999999999999999999)
widget.setSingleStep(1)
ilabel = QLabel("Нажми * или на кнопку чтобы запустить кликер")
l.addWidget(label)
ilabel.setAlignment(Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignVCenter)
button = QPushButton("Кликер запустится через 5 секунд после нажатия")
button.setCheckable(True)
button.clicked.connect(self.the_button_was_clicked)
l.addWidget(button)
self.setFixedSize(400, 100)
w = QWidget()
w.setLayout(l)
self.setCentralWidget(w)
def the_button_was_clicked(self, a123): # При нажатии на кнопку, запускается кликер
time.sleep(5)
a123 = a123
m = 0
window.close()
while m <= a123:
mouse.double_click(button='left')
time.sleep(0.01)
m = m + 1
print(a123)
print(m)
app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec()
Помогите, пожалуйста.