SS

SS

S


Чтобы внедрить обновление в ваш код, следуйте этим шагам:

  1. В класс Worker, добавьте атрибут для хранения последнего переведенного текста, например, self.last_translated_text = "".
  2. В методе, который выполняет OCR и перевод (предположим, это run в классе Worker), добавьте проверку: если текст, который вы собираетесь перевести, совпадает с self.last_translated_text, то пропустите перевод и возвращайтесь к ожиданию следующего вызова. В противном случае, выполните перевод и обновите self.last_translated_text новым переведенным текстом.
  3. Для автоматического повторения перевода с интервалом используйте QTimer в Ui_MainWindow. Установите таймер на желаемый интервал (например, 3000 мс для 3 секунд) и подключите его к методу, который вызывает перевод в классе Worker.
  4. Измените метод on_click_openTranslateWin в Ui_MainWindow для запуска таймера после выбора области для перевода и нажатия кнопки перевода.

Пример кода для пункта 2:

python

Copy code
def run(self): # Предположим, что `current_text` - это текст, полученный после OCR. current_text = "полученный текст" if current_text != self.last_translated_text: # Здесь ваш код для перевода `current_text`. self.last_translated_text = current_text else: # Пропустить перевод, если текст не изменился. return 

Пример кода для пункта 3 и 4:

python

Copy code
class Ui_MainWindow(object): def on_click_openTranslateWin(self): # Ваш код для инициализации перевода... self.auto_translate_timer = QTimer(self) self.auto_translate_timer.timeout.connect(self.worker.run) # Предполагается, что worker.run выполняет перевод. self.auto_translate_timer.start(3000) # Запускается каждые 3 секунды. 

Убедитесь, что метод run в Worker адаптирован для выполнения в контексте таймера и правильно обрабатывает перевод и проверку текста на изменения.


Теперь изменив всё в моём основном файле кода, на то что ты дал, мы получим при нажатии на translate безпреревный перевод текста в окне, не требующий нажатий на кнопку translate с паузой в 3 секунды между переводом, и памятью последнего перевода, чтобы наш код не переводил одно и тоже несколько раз, а ставал в ожидание нового текста к примеру


Да, внесение предложенных изменений в основной файл кода позволит реализовать функционал непрерывного перевода текста в выбранной области экрана с интервалом в 3 секунды между переводами. Добавление механизма запоминания последнего переведенного текста предотвратит повторный перевод одного и того же текста, если он не изменился, оптимизируя процесс перевода и уменьшая количество ненужных операций.


Report Page