- 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
구글 번역기 프로그램¶
이번 예제에서는 Googletrans 라이브러리를 이용해서 간단한 구글 번역기 프로그램을 만들어 보겠습니다.
Googletrans는 파이썬을 위한 구글 번역 API 입니다. Googletrans에 대한 자세한 내용은 아래의 링크를 참고하세요.
(Googletrans - 파이썬을 위한 구글 번역 API)
예제¶
## Ex 10-3. 구글 번역기 프로그램.
import sys
from PyQt5.QtWidgets import *
from googletrans import Translator
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 = Translator()
self.initUI()
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()
def translate_kor(self):
text_kor = self.le.text()
text_en = self.translator.translate(text_kor).text
self.te.setText(text_en)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
설명¶
self.lbl1 = QLabel('한국어:', self)
self.lbl2 = QLabel('영어:', self)
self.le = QLineEdit(self)
self.te = QTextEdit(self)
self.trans_btn = QPushButton('번역', self)
self.translator = Translator()
프로그램에 배치할 위젯들을 만듭니다.
두 개의 라벨과 줄 편집기, 텍스트 편집기, 푸시 버튼을 하나씩 만들었습니다.
Translator는 구글 번역기를 구현한 파이썬 클래스입니다.
(참고: Googletrans - googletrans.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)
수직 박스 레이아웃을 이용해서 만든 위젯들을 수직으로 배치합니다.
(참고: PyQt5 레이아웃 - 박스 레이아웃)
self.trans_btn.clicked.connect(self.translate_kor)
self.le.editingFinished.connect(self.translate_kor)
번역 버튼을 클릭하거나, 줄 편집기의 텍스트 편집이 완료되면 self.translate_kor 메서드가 호출됩니다.
(참고: PyQt5 위젯 - QLineEdit)
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를 이용해서 줄 편집기의 텍스트를 영어로 번역하고, 번역된 텍스트를 텍스트 편집기에 표시하는 기능을 합니다.
아래의 결과와 같이 ‘만나서 반갑습니다.’라는 문장이 ‘Nice to meet you.’라는 영어 문장으로 번역됩니다.
이전글/다음글
이전글 : (x, y) 위치 반복 클릭 프로그램2
다음글 : 화면 캡처 프로그램