Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » [PyQt4] Приостановление потока до определенного сигнала. [RSS Feed]

#1 Июль 24, 2014 17:15:03

OlegWock
Зарегистрирован: 2014-07-24
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt4] Приостановление потока до определенного сигнала.

Возникла данная проблема. Пишу проверку орфографии для своего проекта и хочу сделать что-то наподобие окошка как в Ворде, то есть показывается сомнительное слово, варианты написания и кнопки с действиями Добавить“, ”Заменить“, ”Пропустить", этк. Так вот, суть сабжа в том, что мне нужно как-то приостановить выполнение основного кода программы(цикл, который проходится по сомнительным словам), пока открыто это окно, а при клике на одну из кнопок — выполнялся определенное действие и цикл шел дальше, пока дойдет до того самого места. Если коротко, то вот такая схема:
Проверка текста на ошибки (уже написано) => цикл проходящий по каждому сомнительному слову => вызывается диалог с возможными словами => цикл останавливается до определенного сигнала (подскажите как реализовать 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()

Отредактировано OlegWock (Июль 24, 2014 17:19:37)

Офлайн

#2 Июль 25, 2014 15:50:25

agalen
От:
Зарегистрирован: 2011-03-23
Сообщения: 185
Репутация: +  17  -
Профиль   Отправить e-mail  

[PyQt4] Приостановление потока до определенного сигнала.

checker должен принадлежать QDialog.

     # checker.show() -- убрать
     checker.exec_()



Отредактировано agalen (Июль 25, 2014 15:50:41)

Офлайн

  • Начало
  • » GUI
  • » [PyQt4] Приостановление потока до определенного сигнала.[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version