Найти - Пользователи
Полная версия: [PyQt4] Приостановление потока до определенного сигнала.
Начало » GUI » [PyQt4] Приостановление потока до определенного сигнала.
1
OlegWock
Возникла данная проблема. Пишу проверку орфографии для своего проекта и хочу сделать что-то наподобие окошка как в Ворде, то есть показывается сомнительное слово, варианты написания и кнопки с действиями Добавить“, ”Заменить“, ”Пропустить", этк. Так вот, суть сабжа в том, что мне нужно как-то приостановить выполнение основного кода программы(цикл, который проходится по сомнительным словам), пока открыто это окно, а при клике на одну из кнопок — выполнялся определенное действие и цикл шел дальше, пока дойдет до того самого места. Если коротко, то вот такая схема:
Проверка текста на ошибки (уже написано) => цикл проходящий по каждому сомнительному слову => вызывается диалог с возможными словами => цикл останавливается до определенного сигнала (подскажите как реализовать D: ) => сигнал получен, цикл повторяется.

Вот код функции:
def checkErrors():
    if not en.dict_exists("ru_RU"): 
        reply = QtGui.QMessageBox.information(None,
                "У вас не установлен русский словарь Hunspell",
                'Проверка невозможна, так как у вам отсутствует нужный словарь Hunspell (ru_RU)')
        return None
    if os.path.exists(os.path.expanduser('~/.PyWriter/dict.txt')):
        #buf_dic = en.DictWithPWL("ru_RU",os.path.expanduser('~/.PyWriter/dict.txt'))
        text_dic = SpellChecker("ru_RU", filters=[EmailFilter,URLFilter])
    else:
        text_dic = SpellChecker("ru_RU", filters=[EmailFilter,URLFilter])
    text = window.editor.toPlainText()
    text_dic.set_text(text)
    dic = en.Dict("ru_RU")
    checker.setWindowModality(QtCore.Qt.ApplicationModal)
    for err in text_dic:
        items = tuple(dic.suggest(err.word))
        checker.text.setText('Возможно, допущена ошибка в слове "{}" '.format(err.word))
        checker.variants.clear()
        checker.variants.addItems(items)
        checker.show()
        # Вот тут нужно подождать
    checker.hide()
agalen
checker должен принадлежать QDialog.

     # checker.show() -- убрать
     checker.exec_()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB