Всплывающее окне при наведении на выделенное слово
Я начинающий в python.
Делаю проверку орфографии (использую PyQt5 для интерфейса).
Я проверяю введенное в редакторе предложение и слова написанные с ошибкой,
выделяю красным.
Скажите, как сделать что бы при наведении на такое слово мышкой,
ниже появлялся всплывающий текст с правильными вариантами?
Вот пример кода проверки орфографии
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import *
from db.notebook_models import NotebookRubrics
from .add_rubrics import Ui_FormAddRubrics
from shutil import copyfile
import os
import pyttsx3
import speech_recognition as sr
from PyQt5.QtGui import QFont
import requests
...
# Проверка орфографии
def spellingText(self):
text = str(self.addRubrics.editTextArea.toPlainText())
self.addRubrics.editTextArea.setPlainText('')
# Для яндека сожно все стразу отправлять без разбивки на слова
LANG_TRANS = {'ru': 'ru', 'en': 'en'}
for lang in LANG_TRANS:
params = {'text': text, 'lang': lang}
r = requests.get('http://speller.yandex.net/services/spellservice.json/checkText', params=params)
if r.status_code == 200:
# Ошибка в слове
if len(r.json()) > 0:
for out in r.json():
word = out['word']
variants = [v for v in out['s']] # Варианты правильного написания
text = text.replace(word, '<span style="text-decoration: underline; color: red">' + word + "</span>")
self.addRubrics.editTextArea.appendHtml(text)
Выглядит на экране таким образом:

Вот пример кода для теста:
import sys
from PyQt5.QtWidgets import *
from PyQt5 import QtCore, QtGui, QtWidgets
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Пример")
self.editTextArea = QtWidgets.QPlainTextEdit(self)
self.editTextArea.setGeometry(QtCore.QRect(10, 10, 250, 250))
self.editTextArea.setObjectName("editTextArea")
variants = ['привет', 'привка', 'заправка']
word = 'правид'
text = "Слово %s написанно неверно! Варианты в массиве variants и нужно что бы выводились при наведении на красное слово мышки" % word
text = text.replace(word, '<span style="text-decoration: underline; color: red">' + word + '</span>')
self.editTextArea.appendHtml(text)
if __name__ == '__main__':
app = QApplication(sys.argv)
form = Example()
form.show()
app.exec()
Хотелось бы что бы при наводе мышки на красное слово всплывало окно с правильныи вариантами из массива variants и при клике на одно из правильных слов - заменялось неправильное Спасибо всем, кто поможет!