지난번에 기본적으로 설치해야하는 모듈과 코드 살펴보았는데요
이번에는 이 코드와 PyQt5를 활용해서 GUI개발 해보도록 하겠습니다.
모듈 코드 |
import sys
from PyQt5.QtWidgets import*
import googletrans
코드 |
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.lbl1 = QLabel('한국어:', self)
self.lbl2 = QLabel('영어:', self)
self.le = QLineEdit(self)
self.te = QTextEdit(self)
self.trans_btn = QPushButton('번역', self)
self.translator = googletrans.Translator()
self.initUI()
코드 설명 |
위젯 생성
self.lbl1 = QLabel('한국어:', self) : 두개의 라벨생성
self.le = QLineEdit(self) : 편집기 생성
self.te = QTextEdit(self) : 텍스트편집기 생성
self.trans_btn = QPushButton('번역', self) :푸쉬버튼 생성
self.translator = googletrans.Translator( ): Translator()는 구글 번역기를 구현한 파이썬 클래스
코드 |
def initUI(self):
vbox = QVBoxLayout()
vbox.addWidget(self.lbl1)
vbox.addWidget(self.le)
vbox.addWidget(self.lbl2)
vbox.addWidget(self.te)
vbox.addWidget(self.trans_btn)
self.setLayout(vbox)
self.trans_btn.clicked.connect(self.translate_kor)
self.le.editingFinished.connect(self.translate_kor)
self.setWindowTitle('Google Translator')
self.setGeometry(200, 200, 400, 300)
self.show()
코드설명 |
수직 박스 레이아웃을 이용하여 위젯들을 수직으로 배치
self.trans_btn.clicked.connect(self.translate_kor), self.le.editingFinished.connect(self.translate_kor): 번역 버튼 클릭하거나 줄편집기의 텍스트편집 완료 시, self.translate_kor 메서드 호출
코드 |
def translate_kor(self):
text_kor = self.le.text()
text_en = self.translator.translate(text_kor).text
self.te.setText(text_en)
코드설명 |
translate_kor(): 구글 번역기 API를 이용하여 번역하는 기능
코드 |
if __name__ == "__main__":
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
결과 |
사진: Unsplash의Trnava University
728x90
반응형
'PYTHON > PYTHON GUI' 카테고리의 다른 글
PyQt5를 통한 GUI개발 - 화면 가운데 정렬[PYTHON개발] (0) | 2024.01.23 |
---|---|
파이썬 GUI 관련 코드[PYTHON개발] (0) | 2024.01.11 |