728x90

QT에서 한글을 입력받게 만들어서 조합 하고 완성하기 위해서는 InputMethodEvent()를 사용해야 한다.


그런데 이 이벤트가 Debug에서는 발생하고, Release에서는 발생이 안되서 약 몇시간동안 삽질을 했었는데, 


결론은 QWidget::setAttribute(Qt::WA_InputMethodEnabled, true); 으로 InputMethodEvent를 사용하겠다고 명시적으로 설정해야된다.




한글 조합 및 완성

- InputMethodEvent()에서 QInputMethodEvent를 매개변수로 받는데, 이 매개변수의 preeditString()은 조합 중인 단어, commitString()은 조합이 완료된 단어이다. 이것을 잘 이용하면 실시간으로 한글이 작성되는 것을 볼 수 있다.



InputMethodEvent()가 발생하지 않는다면...

- 이 이벤트가 발생하지 않는 QWidget의 속성에서 사용하겠다고 알려주면 된다.

   QWidget::setAttribute(Qt::WA_InputMethodEnabled, true); 

728x90

'GUI Toolkit > QT' 카테고리의 다른 글

QT - Dragger  (0) 2023.06.22
QT - QWidget에서 DirectX Rendering  (0) 2019.11.20
QT - qDebug() 와 QT_NO_DEBUG_OUTPUT  (0) 2019.01.17
QT - QT 설치하기.  (0) 2017.02.18

+ Recent posts