편집 할 수없는 QComboBox에서 일부 키를 빠르게 누르면 표시된 텍스트에서 검색이 수행되고 입력 한 접두사가있는 첫 번째 항목이 선택됩니다. 예를 들어, "알라바마", "알래스카", "캘리포니아", "콜로라도", "오하이오"및 "루이지애나"콤보 상자에 6 개의 항목이 있고 C 키를 누르면 "캘리포니아"가 선택됩니다. 잠시 기다렸다가 O를 누르면 "Ohio"가 선택됩니다. 그러나 "CO"를 빨리 입력하면 "Colorado"가 선택됩니다.QComboBox에서 검색을 사용자 정의 할 수 있습니까?
이 동작은 Qt 기능입니까? 외관상으로는 GUI 프레임 워크가 있음에도 불구하고 보편적으로 작동합니다. 이것을 처리하는 Qt라면, 그것을 커스터마이징 할 수 있습니까? 기본적으로 ComboBox에 표시되지 않는 데이터를 기반으로 검색을 수행하려고합니다. 예를 들어 ComboBox에서 로그인을 나열하는 사용자를 선택하려면 사용자의 성을 입력하여 선택하면됩니다. 텍스트 가운데에서 일치하는 항목을 검색하는 것만으로도 충분합니다 (예 : "nia"를 입력하여 "캘리포니아"를 선택). 처음에는
는 QCompleter 도움 듯하지만, 그것은 단지 편집 가능한 QComboBox에 유용 할 것처럼는이를 달성하는 데 사용되어야하는 위젯, QComboBox와 함께 할 수없는 경우 ...
보이는?
감사합니다.
흠, 구현이 간단합니다. 이전에 상상 한 문제는 KeyEvent가 마지막으로 누른 키만 전송한다고 생각했기 때문에 새 검색을 시작할지 아니면 마지막 검색을 계속할지 결정하기 위해 이벤트가 처리 된 마지막 시간을 유지해야합니다. 귀하의 대답을 통해, 나는 키 스트로크 간격이 충분히 짧을 때 이벤트가 완전한 타이핑 된 텍스트를 가질 것이라는 것을 이해합니다. 이게 옳은 거니? – Gabriel
이벤트의 타임 스탬프를 유지하고 문자열을 점진적으로 작성해야합니다. 그러나 이것은 구현하기가 어렵지 않습니다. – pnezis
아니에요. 나는 이미 존재했다면 다시 바퀴를 피하려고했지만, 당신이 제안한대로 할 것입니다. 감사 :) – Gabriel