2010-02-03 2 views
1

다음 기능은 기존 QT & C++ 응용 프로그램에 구현해야합니다. 사용자가 입력 한 약어를 미리 정의 된 단어로 확장해야합니다. 구현해야 할 기능은 텍스트 확장기와 비슷합니다. 사용자가 "FL"을 입력했다면 즉시 플로리다로 대체해야합니다.QT에서 키보드 입력을 수정하는 방법은 무엇입니까?

키 이벤트 캡처를위한 QT 문서를 찾을 수 있었지만 사전 정의 된 문자 세트로 키보드 입력을 수정하는 방법을 잘 모르겠습니다.

사람들이 나에게이 코드에 대한 샘플 코드와 지침을 제공하면 좋을 것입니다.

미리 감사드립니다.

답변

0

이 예는 유용 할 수 있습니까? 그들은 주어진 항목에 대해 다른 단어를 제공 completer라는 mecanism를 사용

... 그것은 ... 꽤 휴대 전화 사전도 같은

사용자 정의 Completer 예입니다 :

http://qt.nokia.com/doc/4.6/tools-customcompleter.html

조금 도와줬으면 좋겠다!

+0

Andy에게 감사의 말씀을 전합니다. 난 그냥 미리 정의 된 단어를 사용자가 입력 한 약어로 완전히 바꾸고 싶다. 나는 목록과 모든 것을 드롭 다운 할 필요가 없다. 특수 키를 사용하여 응용 프로그램에 약어임을 알려주고 일치하는 항목이 있으면 미리 정의 된 단어를 찾아 볼 수 있습니다. 예를 들어 사용자가 "fl"및 space 키를 누르면 응용 프로그램에서 "fl"을 통해 사전 정의 된 단어를 바꿔야합니다. – Thi

+0

이봐 요, 다시 한 번 "플로리다"와 "플로리다"를 매치시킬 수 있다는 것을 알고 있다면, 스페이스 바에 반응하고 예기치 않게 단어를 추가 할 수있는 예제의 동작을 바꿀 수 있습니다 ... –

+0

이봐, 해결책 찾았 니? 네 문제에? 어떻게 한거야? –

1

왜 "키보드 입력"을 수정해야합니까? 사용자가 입력 할 때, 그리고 각각의 문자가 약자 DB에 대해 일치하는지 확인하십시오. 일단 뭔가를 치면 사용자가 입력 한 약어를 지우고 확장으로 바꿉니다.

사용자가 일종의 라인 편집 또는 텍스트 상자에 입력 한 경우 이벤트는 이벤트를 처리 할 필요가없는 매우 간단한 작업이지만 새 문자를 입력 할 때 이러한 위젯에서 보낸 신호에만 적용됩니다.

+0

나는 사용자가 입력 한 문자를 미리 정의 된 단어로 바꾸는 것을 의미했습니다. 실제로 텍스트 상자가 아니라 코드 편집기 용 IDE와 같은 형태입니다. – Thi

+0

그래서 사용자가 입력 한 내용을 표시하고 싶지 않습니다. 나는 당신이해야한다고 생각합니다 - 그렇지 않으면 그가 약어 중 하나를 타이핑하지 않으면 무엇을 보여줄 것입니까? 어떤 경우 에든 입력을 숨기려면 키 이벤트를 잡아서 전달하지 말고 데이터로 무엇이든 할 수 있습니다. –

+0

약자 수에 대한 규칙이 없으며 사전 정의 된 텍스트를 정의 할 수 있습니다. 약어 태그. 사용자 결정에 달려 있습니다. 약어 태그를 사용하여 확장하거나 간단히 입력 할 수 있습니다. QT에서 가능합니까? – Thi