pbj0812의 코딩 일기

[PYTHON] PyQt를 활용한 반복 수행 앱 제작 본문

ComputerLanguage_Program/PYTHON

[PYTHON] PyQt를 활용한 반복 수행 앱 제작

pbj0812 2020. 10. 27. 00:36

0. 목표

 - PyQt 를 활용하여 정해진 반복횟수 만큼 주어진 작업을 반복하는 앱 제작

1. 플로우 차트

2. 실습

 1) library 호출

import sys
from PyQt5.QtWidgets import *

 2) class 및 함수 생성

  (1) initUI

   - 버튼 생성

   - 버튼 위치 생성

   - le 의 결과는 buttonClick 으로 보내버림 

  (2) buttonClick

   - 1번 라디오 버튼이 클릭된 상태면 1 출력, 2번 라디오 버튼이 클릭된 상태면 2 출력

   - 이를 push 버튼(btn)과 연결

   -  le 에서 받은 값을 변수로 만들어 반복문의 반복 횟수로 사용

class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # text
        self.le = QLineEdit()
        self.le.setPlaceholderText('Enter INT!!!!!!!!!!')
        self.le.returnPressed.connect(self.buttonClick)

        # push
        self.btn = QPushButton('Search')
        self.btn.clicked.connect(self.buttonClick)

        # radio1
        self.rbtn1 = QRadioButton('First Button', self)
        self.rbtn1.move(50, 50)
        self.rbtn1.setChecked(True)

        # radio2
        self.rbtn2 = QRadioButton(self)
        self.rbtn2.move(50, 70)
        self.rbtn2.setText('Second Button')

        grid = QGridLayout()
        grid.addWidget(self.le, 5, 4, 6, 4)
        grid.addWidget(self.btn, 6, 4, 6, 4)
        self.setLayout(grid)

        self.setWindowTitle('Twitter Crawler')
        self.setGeometry(100, 100, 400, 250)
        self.show()

    def buttonClick(self):
        cycle_number = int(self.le.text())
        if self.rbtn1.isChecked():
            for i in range(cycle_number):
                print(i + 1)
        elif self.rbtn2.isChecked():
            for i in range(cycle_number):
                print(i + 2)

 3) 메인

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())

3. 실행

 1) 실행

python pyqt_test.py

  - 결과

 2) Enter INT!!! 에 5를 입력  -> First Button 선택 -> Search

 3) Enter INT!!! 에 5를 입력 -> Second Button 선택 -> Search

 

Comments