Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Изменить значение переменной по нажатию кнопки [RSS Feed]

#1 Июль 17, 2020 17:57:21

Feelgood
Зарегистрирован: 2016-08-04
Сообщения: 64
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменить значение переменной по нажатию кнопки

Доброго времен суток,
делаю на PyQT5 аналог Google Translate, вопрос состоит в том как по нажатию кнопок:

 self.ui.btn_ru_lang.clicked.connect()
 self.ui.btn_en_lang.clicked.connect()
 self.ui.btn_de_lang.clicked.connect()
передавать строковое значение ‘ru’, ‘en’, ‘de’ в параметр ‘dest’ методата translate функции translate.
Понимаю вопрос тревиальный, но мозки чет высохли, только учусь.

 import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from ui import Ui_MainWindow
from googletrans import Translator
class TranslateText(QtWidgets.QMainWindow):
    def __init__(self):
        super(TranslateText, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.init_UI()
    
    def init_UI(self):
        self.setWindowTitle('Google Translate') 
        self.ui.btn_translate.clicked.connect(self.translate)
        self.ui.btn_check_lang.setDown(True)
        
        #Кнопки которые передают в параметр 'dest' методата translate функции translate, значение 'ru', 'en', 'de'
        #self.ui.btn_ru_lang.clicked.connect()
        #self.ui.btn_eng_lang.clicked.connect()
        #self.ui.btn_de_lang.clicked.connect()
    def translate(self, selected_language):
        input_text = self.ui.input_text.toPlainText()
        translated_text = translator.translate(input_text, dest=f'{selected_language}')        
        self.ui.output_text.setPlainText(translated_text.text)    
translator = Translator()      
app = QtWidgets.QApplication([])
application = TranslateText()
application.show()
 
sys.exit(app.exec())

Отредактировано Feelgood (Июль 17, 2020 17:58:10)

Офлайн

#2 Июль 17, 2020 18:21:30

Feelgood
Зарегистрирован: 2016-08-04
Сообщения: 64
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменить значение переменной по нажатию кнопки

Решение нашел, но не уверен на сколько оно оптимально, во всяком случае рабочее:

 import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from ui import Ui_MainWindow
from googletrans import Translator
class TranslateText(QtWidgets.QMainWindow):
    def __init__(self):
        super(TranslateText, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.init_UI()
    
    def init_UI(self):
        self.setWindowTitle('Google Translate') 
        self.ui.btn_translate.clicked.connect(self.translate)
        self.ui.btn_check_lang.setDown(True)
        
        self.ui.btn_eng_lang.clicked.connect(self.translate_into_en)
        self.ui.btn_ru_lang.clicked.connect(self.translate_into_ru)
        self.ui.btn_ge_lang.clicked.connect(self.translate_into_de)
    
    def translate_into_en(self):
        global selected_language
        selected_language = 'en'
    
    def translate_into_ru(self):
        global selected_language
        selected_language = 'ru'
    def translate_into_de(self):
        global selected_language
        selected_language = 'de'
    def translate(self):
        global selected_language
        input_text = self.ui.input_text.toPlainText()
        translated_text = translator.translate(input_text, dest=f'{selected_language}')        
        self.ui.output_text.setPlainText(translated_text.text)    
selected_language = ''
translator = Translator()      
app = QtWidgets.QApplication([])
application = TranslateText()
application.show()
 
sys.exit(app.exec())

Отредактировано Feelgood (Июль 17, 2020 18:22:38)

Офлайн

  • Начало
  • » GUI
  • » Изменить значение переменной по нажатию кнопки [RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version