본문으로 바로가기
 

파이큐티(PyQt5) 시작하기 - 구글 날씨 검색기 만들기 -1 : 디자이너 활용

디자인하기 먼저 MainWindow 를 하나 생성합니다. 키워드를 검색할 수 있는 입력창과 버튼 그리고 결과를 출력해줄 수 있는 위젯이 필요하겠습니다. QLineEdit, QPushButton, QTableWidget 을 배치하겠습니다.

jvvp.tistory.com

 

파이썬 구글 날씨 검색기(크롤러)를 만들기 : 모듈화와 핵심 팁

모듈 설치 요청 및 응답 등의 통신을 위한 requests 모듈을 설치합니다. pip install requests (crawling_blog) PS C:\Users\Desktop\pyqt\Example\begin_for_blog\2> pip install requests Collecting requests..

jvvp.tistory.com

 

버튼 클릭 이벤트를 함수와 연결하기

우선 접근해야하는 위젯들의 object name 입니다.

 

1차적으로 중요한 것은

lineEdit 의 텍스트를 가져오는 것과 

pushButton 의 클릭 이벤트를 처리하는 것입니다.

 

pushButton 의 clicked 시그널을 self.run 함수에 연결하겠다는 소리입니다.

self.pushButton.clicked.connect(self.run)

 

lineEdit 의 텍스트는

lineEdit.text() 로 가져올 수 있습니다.

반대로 설정하는 것은 lineEdit.setText('문자열')

import sys
from PyQt5 import QtCore, QtWidgets, uic
from PyQt5.QtWidgets import QMainWindow

ui = uic.loadUiType('app.ui')[0]
class MainWindow(QMainWindow, ui):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.pushButton.clicked.connect(self.run)
    
    def run(self):
        keyword = self.lineEdit.text()
        print(keyword)

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    app.exec_()

 

이제 검색 버튼을 눌렀을 때 크롤러를 실행해보겠습니다.

디렉터리: C:\Users\Desktop\pyqt\Example\begin_for_blog\2


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----     2020-07-22   오후 6:32                __pycache__
-a----     2020-07-22   오후 6:32            715 app.py
-a----     2020-07-22   오후 6:14           1817 app.ui
-a----     2020-07-22   오후 5:26           1858 crawler.py

 

크롤러 포스팅을 안보신 분들은 다음을 참조하세요.

구글 날씨 검색기

 

간단하게 크롤러 모듈을 import 하여 연동합니다. 

import sys
from PyQt5 import QtCore, QtWidgets, uic
from PyQt5.QtWidgets import QMainWindow

from crawler import *

ui = uic.loadUiType('app.ui')[0]
class MainWindow(QMainWindow, ui):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.pushButton.clicked.connect(self.run)
        self.crawler = GoogleWeather()
    
    def run(self):
        keyword = self.lineEdit.text()
        self.crawler.set_keyword(keyword + ' 날씨')
        self.crawler.run()
        r = self.crawler.get_result()
        print(r)

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    app.exec_()

 

테이블위젯에 아이템을 삽입하는 것은 다음 포스팅에 다루겠습니다.