을 호출합니다. QStackedWidget에 여러 개의 QPushButton 버튼이 있습니다. 위젯의 상위 위젯은 QMainWindow입니다. QStackedWidget 안에는 QLineEdit도 있습니다. 원하는 작업은 간단합니다. 텍스트 상자가 포함 된 양식의 유효성을 검사하고 데이터를 처리 할 사용자 정의 클래스의 함수를 모두 호출하면됩니다. 클래스의 인스턴스는 내 QMainWindow 클래스 내에 만들어집니다. 그 클래스의 메서드를 호출하는 가장 좋은 방법은 무엇입니까? 내 사용자 정의 클래스를 QStackedWidget 내부의 위젯 인스턴스에 연결하는 Qt의 신호/슬롯 메커니즘을 사용해야합니까?Qt를 사용하여 부모 위젯 함수
답변
을 필요한만큼 여러 번 파생시키고 유효성 검사가 필요한 각 필드에 유효성 검사기를 설치할 수 있습니다. 이렇게하면 필드가 비어 있거나 유효한 항목이 포함됩니다.
데이터를 처리하기 전에 모든 해당 필드에 데이터가 있는지 확인한 다음 유효한 양식이 있음을 보장해야합니다.
양식에서 양식 사용자의 일부 소비자에게 데이터를 전달하는 일반적인 방법은 데이터를 보유 할 중간 남자 클래스를 만드는 것입니다. 폼의 유효성을 검사 한 후 클래스의 인스턴스가 채워지고 인스턴스가 소비자에게 전달됩니다. 이렇게하면 양식에 변경 사항이있는 경우 동일한 데이터가 수집되는 경우 소비자가 이러한 변경 사항으로부터 격리됩니다.
일반적인 규칙은 구현이 아닌 개체 인터페이스에 대해 작업하는 것입니다. 당신이 염두에 두어야 할 몇 가지 사항을 염두에두면 sig/slot이나 직접 함수 호출을할지 여부는 중요하지 않습니다.
시그마/슬롯은 호출 순서를 보장하지 않으며 본질적으로이 신호를 볼 수있는 사람을 의미합니다 객체가 신호에 연결하여이 변경 사항을 선택할 수 있습니다. 이 하위 구성 요소별로 양식 데이터를 처리하는 순서를 보장해야하는 경우 유지 보수 프로그래머에게 엉망인 옵션을 제공해야하는 이유는 무엇입니까?
두 번째로, 여기서 개체가 상주해야합니다. 데이터 소비자가 매우 복잡해지고 어떤 시나리오 (어쩌면 사용자 개인 또는 오늘 날짜 또는 현재 온도, 나도 모르겠다)를 기반으로 다른 사용자를 스냅하려는 언젠가는 다시 아치를하고 싶다. 소비자에게 데이터를 가져 오기위한 논리가 양식의 특정 방법에있는 객체에 크게 의존하는 경우 잘못 처리하고있는 것입니다.
- 1. Qt를 사용하여 QSlider 추가
- 2. Qt를 사용하여 디렉토리 이동
- 3. 부모 함수 가져 오기
- 4. 부모 클래스의 EventListener 함수
- 5. QT C++ 함수 위젯 전달
- 6. form.submit에서 JQuery 위젯 함수 호출하기
- 7. Qt를 사용하여 Mac에서 프로세스 시작
- 8. QT를 사용하여 OOP를 구현하는 방법
- 9. Qt를 사용하여 VBulletin 포스트 편집
- 10. Qt를 사용하여 Rapidshare에 파일 업로드
- 11. qt를 사용하여 SQL Server에 연결
- 12. Qt를 사용하여 프로세스에 메모리 주입
- 13. QT를 사용하여 원격 사운드 재생
- 14. 가변 부모 크기를위한 App 위젯 XML 레이아웃
- 15. 위젯 부모 - 자식 페이지의 CSS 규칙 상속
- 16. JavaScript window.opener 부모 함수 호출
- 17. PHP가 부모 클래스에서 함수 오버로드
- 18. 부모 창에서 iframe으로 함수 호출하기
- 19. Qt를 사용하여 마우스 클릭 및 마우스 휠 조작
- 20. MAC는 Qt를
- 21. objective C : Delegate를 사용하여 부모 클래스의 함수 호출
- 22. 원숭이를 사용하여 위젯 테스트하기
- 23. 다시 사용하여 jQuery를 위젯
- 24. qt를 사용하여 텍스트 광고 자동 스크롤을 어떻게합니까?
- 25. Qt를 사용하여 MS Word에서 새 페이지 추가
- 26. Qt를 Xlib 창에 사용하여 사각형을 그리는 방법
- 27. qt를 사용하여 폴더/파일 압축 zt
- 28. QT를 사용하여 UDP를 통해 파일 보내기
- 29. OGDF 및 Qt를 사용하여 그래프 표시
- 30. Qt를 사용하여 스레드 당 하나의 타이머
데이터를 확인한 후에 이러한 데이터를 맞춤 클래스에 전달해야합니다. 이 경우 신호/슬롯 시스템이 적절합니까? 아니면 다른 것을 사용해야합니까? – Stefano
@Stefano 데이터가 유효화 된 지점 이후에 어떤 신호/슬롯이이 작업과 관련이 있다고 생각하지 않습니다. 원하는대로 할 수 있습니다. 모든 필드에서 유효한 데이터가 있는지 살펴보고 확인할 때 신호/슬롯이 필요할 수 있습니다. 그것은 당신의 아키텍처에 달려 있습니다. –
기본적으로 부모 QWidget 클래스 내부에 자체 인스턴스가있는 사용자 정의 클래스 메소드에 유효성이 검사 된 데이터를 전달하는 가장 좋은 방법은 무엇입니까? – Stefano