2016-03-23 2 views
0

У меня есть QWidget (вызывается его parentWidget), на котором я включил метод ввода, установив атрибут: Qt :: WA_InputMethodEnabled.QInputMethod: программный конец сеанса метода ввода

Моя заинтересованность в том, чтобы открыть диалоговое окно линии (позволяет называть его inputMethodEditor), который должен обрабатывать все входные данные текста.

Теперь я прочитал, что inputMethod работает как сеанс, означает, что он имеет такие состояния, как startToCompose, составление, завершение. В то время как метод ввода находится в состоянии startToCompose или composing, он отправляет строку под композицией в preEditString через inputMethodEvent, и по завершении сеанса она отправляет окончательную сложенную строку в commitString().

Мое намерение завершить этот сеанс началось с parentWidget, как только появится диалоговое окно вводаMethodEditor.

Итак, вопрос в том, есть ли способ закрыть этот сеанс программно.?

ответ

0

Изучив какое-то время, я мог бы понять это, я не знаю, как я это раньше не замечал. Итак, трюк заключается в вызове функции QInputMethod :: reset. Что-то вроде этого:

QApplication* application = static_cast<QApplication *>(QApplication::instance()); 
application->inputMethod()->reset(); 
Смежные вопросы