본문 바로가기
✨Python

[Python/파이썬] 파이썬으로 ui 윈도우 어플리케이션 구현하기 위젯 5 응용프로그램만들기(번역기만들기1)

by 김말자 2022. 6. 13.
728x90
728x90
BIG

#구글 번역기 만들기

import sys
# 시스템 불러오기
from PyQt5 import uic
# 디자인 만든거 불러와야됨
from PyQt5.QtWidgets import *
#큐티위젯 불러오고
from PyQt5.QtGui import *
#gui 불러오기
import googletrans
#구글 트랜스불러오고


form_class = uic.loadUiType('ui/ui.ui')[0]
#ui안에 있는 유아이 불러오기 무조건 첫줄에서 유아이부터 불러와줘야함


class MyWindow(QMainWindow, form_class):
    def __init__(self):
    #q메인윈도우 상속받기 그 후 폼클래스를 상속받아야 쓸 수 있는 것임
        super().__init__() #부모 초기화자 호출 안하면 에러
        self.setupUi(self) #제작해놓은 ui.ui를 연결함
        self.setWindowTitle('구글한줄번역기') #윈도우타이틀
        self.setWindowIcon(QIcon('icons/google.png')) #아이콘 넣기
        self.statusBar().showMessage('Google Trans App v 1.0.0')

        self.p1.clicked.connect(self.trans_operation) # p1연결
        self.p2.clicked.connect(self.reset_operation) # p2연결
        
    def trans_operation(self): # 번역하기 버튼
        trans = googletrans.Translator()
        trans_str = self.ko.text() #한국어에 인풋을 받은걸 가져오는거임

        result_eng = trans.translate(trans_str, dest = 'en') #영어번역
        result_jap = trans.translate(trans_str, dest = 'ja') #일본번역
        result_chi = trans.translate(trans_str, dest = 'zh-cn') #중국번역

        self.en.append(result_eng.text) #영어번역 보이게
        self.ja.append(result_jap.text) #일본번역 보이게
        self.ch.append(result_chi.text) #중국번역 보이게
        
    def reset_operation(self): # 리셋버튼 만들어주기
        self.ko.clear()
        self.en.clear()
        self.ja.clear()
        self.ch.clear()

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

 

 

 

# ui 만들기

한국어 라인에디트

나머지는 텍스트 에디트

구글 api제공하는 거임(그걸 이용해서 만들것임)

 

 

 

한국어 입력은 라인에디트

번역내용은 텍스트 에디트

나머지는 푸쉬버튼을 썼다

 

ui 완성~~

 

 

 

 

 

# api 잘가져와지는지 시험해보기(구글트랜스 임포트해보기)

 파이썬은 모듈로 인해 api를 아무나 가져가서 사용할 수 있다. 어려운 에이피아이가 아닌 다른 개발자들이 만들어놓은 함수를 이용해서 함수만 호출해서 사용하면 된다. api 는 googletrans 모듈을 이용해 볼 것이다. pip로 설치하면 간편하게 불러와서 사용할 수 있다. 그런것은 다 긱허브를 이용해서 찾아보면 된다.

pip install googletrans ==4.0.0-rc1

오류가 떠서 패키지로 깔아봤다

 

 

 

import googletrans
# 구글 트랜스를 불러온다

trans = googletrans.Translator()

str1 = "안녕하세요"
#번역할걸 객체인 str1에 넣어본다
str2 = 'i love korea'
#영어도 테스트 되는지 한번 해본다

result1 = trans.translate(str1, dest='en')
#한국어 번역을 돌려본다, dest 번역할 언어를 지정한다// en은 영어버전이라는 뜻이다.

print({result1.text})

googletrans 를 임포트한 후 trans.translate(번역할거, 번역언어)

프린트로 찍어줄 수 있다.

 

 

 

 

 

콘솔창에 잘 돌아가는 것을 볼 수 있다.

 

 

 

print(f"번역 결과 : {result1.text}")
#f스트링은 사이에 원하는 변수를 삽입할 수 있다.

 

 

이걸 사용하면 언어를  어느나라 약자를 번역할지 알 수 있다.

 

 

 

 

pp프린트를 이용하면 json파일로 볼 수 있다.

 

.

import googletrans
# 구글 트랜스를 불러온다
import pprint

trans = googletrans.Translator()

str1 = "안녕하세요"
#번역할걸 객체인 str1에 넣어본다
str2 = 'i love korea'
#영어도 테스트 되는지 한번 해본다

result1 = trans.translate(str1, dest='en')
#한국어 번역을 돌려본다, dest 번역할 언어를 지정한다// en은 영어버전이라는 뜻이다.
result2 = trans.translate(str1, dest='ko')
result3 = trans.translate(str1, dest='ja')
#pprint.pprint(googletrans.LANGUAGES #번역불러오기
print(f"번역 결과 : {result1.text}")
#f스트링은 사이에 원하는 변수를 삽입할 수 있다.
print(f"번역 결과 : {result2.text}")
print(f"번역 결과 : {result3.text}")

 

 

 

 

잘나오는것을 확인할 수 있다

 

 

#번역기 만들기

pyqt5 다운을 받는다

 

 

import sys
# 시스템 불러오기
from PyQt5 import uic
# 디자인 만든거 불러와야됨
from PyQt5.QtWidgets import *
#큐티위젯 불러오고
from PyQt5.QtGui import *
#gui 불러오기
import googletrans
#구글 트랜스불러오고

필요한거 다 임포트하기!!

 

form_class = uic.loadUiType('ui/ui.ui')[0]
#ui안에 있는 유아이 불러오기 무조건 첫줄에서 유아이부터 불러와줘야함

import sys
# 시스템 불러오기
from PyQt5 import uic
# 디자인 만든거 불러와야됨
from PyQt5.QtWidgets import *
#큐티위젯 불러오고
from PyQt5.QtGui import *
#gui 불러오기
import googletrans
#구글 트랜스불러오고


form_class = uic.loadUiType('ui/ui.ui')[0]
#ui안에 있는 유아이 불러오기 무조건 첫줄에서 유아이부터 불러와줘야함


class MyWindow(QMainWindow, form_class):
    def __init__(self):
    #q메인윈도우 상속받기 그 후 폼클래스를 상속받아야 쓸 수 있는 것임
        super().__init__() #부모 초기화자 호출 안하면 에러
        self.setupUi(self) #제작해놓은 ui.ui를 연결함
        self.setWindowTitle('구글한줄번역기') #윈도우타이틀
        self.setWindowIcon(QIcon('icons/google.png')) #아이콘 넣기
        self.statusBar().showMessage('Google Trans App v 1.0.0')

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

잘 나오는 것을 확인할 수 있다.

import sys
# 시스템 불러오기
from PyQt5 import uic
# 디자인 만든거 불러와야됨
from PyQt5.QtWidgets import *
#큐티위젯 불러오고
from PyQt5.QtGui import *
#gui 불러오기
import googletrans
#구글 트랜스불러오고


form_class = uic.loadUiType('ui/ui.ui')[0]
#ui안에 있는 유아이 불러오기 무조건 첫줄에서 유아이부터 불러와줘야함


class MyWindow(QMainWindow, form_class):
    def __init__(self):
    #q메인윈도우 상속받기 그 후 폼클래스를 상속받아야 쓸 수 있는 것임
        super().__init__() #부모 초기화자 호출 안하면 에러
        self.setupUi(self) #제작해놓은 ui.ui를 연결함
        self.setWindowTitle('구글한줄번역기') #윈도우타이틀
        self.setWindowIcon(QIcon('icons/google.png')) #아이콘 넣기
        self.statusBar().showMessage('Google Trans App v 1.0.0')

        self.p1.clicked.connect(self.trans_operation) # p1연결
        self.p2.clicked.connect(self.reset_operation) # p2연결
        
    def trans_operation(self): # 번역하기 버튼

    def reset_operation(self): # 리셋버튼 만들어주기

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

초기화해서 부모상속받고

ui를 연결한후

타이틀, 아이콘 등을 넣고

꾸민다

 

 

    self.p1.clicked.connect(self.trans_operation) # p1연결
    self.p2.clicked.connect(self.reset_operation) # p2연결
    
def trans_operation(self): # 번역하기 버튼
    trans = googletrans.Translator()

그 후 버튼을 연결시켜준다~

 

 

 

 

여러가지 텍스트에디트에 대한 정보가 있는데

 

 

append를 넣어서 할것이다.

 

 

 

 

 

    self.p1.clicked.connect(self.trans_operation) # p1연결
 #   self.p2.clicked.connect(self.reset_operation) # p2연결
    
def trans_operation(self): # 번역하기 버튼
    trans = googletrans.Translator()
    trans_str = self.ko.text() #한국어에 인풋을 받은걸 가져오는거임

    result_eng = trans.translate(trans_str, dest = 'en') #영어번역
    result_jap = trans.translate(trans_str, dest = 'ja') #일본번역
    result_chi = trans.translate(trans_str, dest = 'zh-cn') #중국번역

    self.en.append(result_eng.text) #영어번역 보이게
    self.ja.append(result_jap.text) #일본번역 보이게
    self.ch.append(result_chi.text) #중국번역 보이게

버튼을 연결하고

번역을 돌린후 그 부분을 붙인다.

 

 

 

잘돌아가는 것을 확인할 수 있다.

 

 

초기화버튼!!만들기

def reset_operation(self): # 리셋버튼 만들어주기
    self.ko.clear()
    self.en.clear()
    self.ja.clear()
    self.ch.clear()

 

 

 

잘돌아가는 것을 확인할 수 있다.

728x90
반응형
BIG

댓글