- PyQt5 Tutorial - 파이썬으로 만드는 나만의 GUI 프로그램
- 1. PyQt5 소개 (Introduction)
- 2. PyQt5 설치 (Installation)
- 3. PyQt5 기초 (Basics)
- 4. PyQt5 레이아웃 (Layout)
- 5. PyQt5 위젯 (Widget)
- QPushButton
- QLabel
- QCheckBox
- QRadioButton
- QComboBox
- QLineEdit
- QLineEdit (Advanced)
- QProgressBar
- QSlider & QDial
- QSplitter
- QGroupBox
- QTabWidget
- QTabWidget (Advanced)
- QPixmap
- QCalendarWidget
- QSpinBox
- QDoubleSpinBox
- QDateEdit
- QTimeEdit
- QDateTimeEdit
- QTextBrowser
- QTextBrowser (Advanced)
- QTextEdit
- QTableWidget
- QTableWidget (Advanced)
- 6. PyQt5 다이얼로그 (Dialog)
- 7. PyQt5 시그널과 슬롯 (Signal&Slot)
- 8. PyQt5 그림 그리기 (Updated)
- 9. PyQt5 실행파일 만들기 (PyInstaller)
- 10. PyQt5 프로그램 예제 (Updated)
- ▷ PDF ebook
- Python Tutorial
- NumPy Tutorial
- Matplotlib Tutorial
- PyQt5 Tutorial
- BeautifulSoup Tutorial
- xlrd/xlwt Tutorial
- Pillow Tutorial
- Googletrans Tutorial
- PyWin32 Tutorial
- PyAutoGUI Tutorial
- Pyperclip Tutorial
- TensorFlow Tutorial
- Tips and Examples
(x, y) 위치 반복 클릭 프로그램2¶
이번에는 여러 지점을 반복해서 클릭하는 프로그램을 만들어 보겠습니다.
세 개의 (x, y) 지점과 클릭 사이의 간격, 그리고 클릭 횟수를 입력하면 세 개의 지점을 순서대로 정해진 횟수만큼 클릭하도록 합니다.
예제¶
## Ex 10-2. (x, y) 위치 반복 클릭 프로그램2.
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import QTimer
import pyautogui
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.x_le = QLineEdit(self)
self.y_le = QLineEdit(self)
self.x_le2 = QLineEdit(self)
self.y_le2 = QLineEdit(self)
self.x_le3 = QLineEdit(self)
self.y_le3 = QLineEdit(self)
self.delay_le = QLineEdit(self)
self.num_le = QLineEdit(self)
self.start_btn = QPushButton('Start', self)
self.x, self.y = 0, 0
self.x2, self.y2 = 0, 0
self.x3, self.y3 = 0, 0
self.delay, self.num_click = 0, 0
self.initUI()
def initUI(self):
self.x_le.move(20, 20)
self.x_le.setPlaceholderText('x 위치')
self.x_le2.move(20, 50)
self.x_le2.setPlaceholderText('x 위치2')
self.x_le3.move(20, 80)
self.x_le3.setPlaceholderText('x 위치3')
self.y_le.move(160, 20)
self.y_le.setPlaceholderText('y 위치')
self.y_le2.move(160, 50)
self.y_le2.setPlaceholderText('y 위치2')
self.y_le3.move(160, 80)
self.y_le3.setPlaceholderText('y 위치3')
self.delay_le.move(20, 110)
self.delay_le.setPlaceholderText('클릭 사이 간격 (초)')
self.num_le.move(160, 110)
self.num_le.setPlaceholderText('클릭 횟수')
self.start_btn.move(110, 150)
self.start_btn.clicked.connect(self.start_btn_click)
self.setWindowTitle('Click')
self.setGeometry(400, 400, 300, 200)
self.show()
def start_btn_click(self):
self.timer = QTimer()
self.x, self.y = int(self.x_le.text()), int(self.y_le.text())
self.x2, self.y2 = int(self.x_le2.text()), int(self.y_le2.text())
self.x3, self.y3 = int(self.x_le3.text()), int(self.y_le3.text())
self.delay = int(self.delay_le.text())
self.num_click = 0
self.timer.start(self.delay * 1000)
self.timer.timeout.connect(self.mouse_click)
def mouse_click(self):
pyautogui.click(self.x, self.y)
pyautogui.click(self.x2, self.y2)
pyautogui.click(self.x3, self.y3)
self.num_click += 1
if self.num_click == int(self.num_le.text()):
self.timer.stop()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
설명¶
self.x_le = QLineEdit(self)
self.y_le = QLineEdit(self)
self.x_le2 = QLineEdit(self)
self.y_le2 = QLineEdit(self)
self.x_le3 = QLineEdit(self)
self.y_le3 = QLineEdit(self)
self.delay_le = QLineEdit(self)
self.num_le = QLineEdit(self)
self.start_btn = QPushButton('Start', self)
self.x, self.y = 0, 0
self.x2, self.y2 = 0, 0
self.x3, self.y3 = 0, 0
self.delay, self.num_click = 0, 0
앞의 예제와 비슷한 방식으로 세 개의 (x, y) 위치를 입력 받을 수 있도록 줄 편집기와 변수들을 만듭니다.
def start_btn_click(self):
self.timer = QTimer()
self.x, self.y = int(self.x_le.text()), int(self.y_le.text())
self.x2, self.y2 = int(self.x_le2.text()), int(self.y_le2.text())
self.x3, self.y3 = int(self.x_le3.text()), int(self.y_le3.text())
줄 편집기 위젯의 text() 메서드를 이용해서 사용자가 입력한 (x, y) 위치 값들을 가져옵니다.
pyautogui.click(self.x, self.y)
pyautogui.click(self.x2, self.y2)
pyautogui.click(self.x3, self.y3)
각 위치를 순서대로 클릭합니다.
이전글/다음글
이전글 : (x, y) 위치 반복 클릭 프로그램
다음글 : 구글 번역기 프로그램