DD : MM : SS 형식 (위도, 분, 초)으로 위도/경도를 입력하기위한 Qt4 위젯의 가장 좋은 시작점은 무엇입니까? QLineEdit을 사용자 정의 하시겠습니까? 일련의 스핀 박스?위도/경도 Qt4 위젯?
답변
몇 가지 변종이 있습니다 검사기와
QLineEdit - 얻지 못한. 우리에게는 충분히 유용한 편집 및 적절한보기 (','및도 기호 사용, 잘못된 값 금지 및 준 수정 상태 허용 가능)를 달성 할 수 없었으며 대상 동작은 표시하지 않았습니다. 오류를 표시하고 사용자가 오류를 수정하도록 강요하지만 사용자가 유효한 값만 입력하도록 허용).
하나의 위젯으로 그룹화 된 적절한 기호가있는 라인에서 3 회의 스핀 편집이 필요할 때 키보드 입력을 다음에서 건너 뛰기위한 코드 몇 가지 경우에 충분히 잘 보이고 다음과 같은 변형을 찾을 수 있습니다. 유명한 대리석 프로젝트에서 실현. 서브 클래스 QAbstractSpinBox, 트롤 테크가 QDateTimeEditor에서와 같이
아직도, 내 상사는이 방법은, 그래서 여기에 처음으로 거의 추한 또 다른 방법이라고 말했다. 사실 위젯의 동작은 QDateTimeEditor에 구현 된 것과 비슷합니다. 나 자신도 아직 업무를 수행하지 않았지만 업무 우선 순위 때문에 발생하지만해야 할 것입니다.나는 QLineEdit::setValidator()
을 사용하여 QLineEdit
에 연결하여 QValidator
을 사용합니다.
Qt에 포함 된 2 개의 유효성 검사기는 정수와 복식 만 포함하므로 validate()
함수와 fixup()
함수를 구현할 수 있도록 서브 클래스를 만들어야합니다.
내 의견으로는 3 개의 분리 된 스핀 박스가 아닌 하나의 입력 상자를 제공하는 것이 다소 우스꽝 스럽습니다. (어수선 해 보이고 입력하기도 좋지 않습니다.)
[편집 : 다른 대안은 QLineEdit::setInputMask()
을 사용하여 QLineEdit에 "validation input mask"을 설정하는 것입니다. 이미 기호가있는 줄 편집 및 다른 문자의 자리 표시자를 원할 수도 있습니다.이 방법을 사용하면 비슷한 것을 얻을 수 있습니다. QtDemo의 응용 프로그램은 당신이 선택하여 확인할 수 있습니다이의 예를 가지고 Widgets-> 라인 편집 (위젯은 두 번째 페이지에)]
- 1. QT4 디자이너 - 구현 위젯
- 2. Qt4 QLineEdit 위젯 또는 기타에 포커스 이벤트를 캡처하는 방법
- 3. Qt4 로그인 윈도우
- 4. Ruby + QT4; ..
- 5. Qt4 레이아웃을 그룹 상자에 넣습니다.
- 6. PyQt4 파일 선택 위젯
- 7. Qt4 DNS 프록시 QUdpSocket
- 8. Qt4 QNetworkManager가 응답하지 않습니다.
- 9. matplotlib의 Qt4 + mplot3d
- 10. Qt4 QMenu items sorting
- 11. Ruby를 사용하는 QT4 QFileSystemWatcher
- 12. Ruby와 Qt4 : no`rbuic`
- 13. QT4 메모리 관리
- 14. QList4의 QT4 QstringListModel
- 15. 위젯
- 16. Qt4 기존 슬롯이 인식되지 않습니다.
- 17. Qt4 : 스케일 불변 qgraphicsitem 개요
- 18. Qt4 플러그인 개발을 사용하는 C++
- 19. Qt4 스타일 시트 의사 상태
- 20. C++의 동적 QT4 메뉴
- 21. qt4 컴파일 시간 설정 무시
- 22. QUdpSocket을 사용하는 Qt4 DNS 서버
- 23. Qt4 (위) 위젯의 HTML과 CSS?
- 24. QT4, 페이지가 지정된 표시 요소
- 25. 컴팩트 Qt4 vBoxLayout을 생성하는 방법
- 26. 간단한 도구 모음 Qt4 사용
- 27. Qt4 정적 컴파일 및 홀수 오류가 발생하기 전에 발생합니다.
- 28. QMdiArea 및 QScrollArea를 사용하는 QT4 이상한 사용 문제
- 29. 동적 위젯 업데이트를위한 Twitter 위젯 메소드
- 30. Android 위젯 : 즉시 앱 위젯 배경을 변경하십시오.
QLineEdit의 입력 마스크 지원을 보았습니까? 나는 그 대안으로 내 대답을 업데이트했습니다. – richardwb
네,이 변종을 시도해 볼 수도 있습니다. 여기에있는 문제는 입력 마스크가 위젯에 알려주며 몇몇 기호가 일부 위치에서 적절하다는 것입니다. 우리의 경우에는 그렇지 않습니다. 아마도 유효성 검사기와 입력의 혼합이있을 수 있습니다. 마스킹 로직은 학위와 분/초 마크를 적절한 위치에 그리고 적절한 +/-/숫자 위치와 범위 문제를 처리합니다. 말하자면, 다른 좌표 형식 (d.m.s, d.m, m은 십진수 및 거리 (미터))을 처리 할 제어가 필요합니다. –