qdialog 예제

탭 대화 상자 의 예는 세 개의 탭을 제공하는 단일 TabDialog 클래스로 구성되며, 각 탭에는 특정 파일에 대한 정보가 들어 있으며 대화 상자의 내용을 수락하거나 거부하는 데 사용되는 두 개의 표준 푸시 버튼이 있습니다. 첫 번째 예는 C++로 완전히 작성된 대화 상자 찾기입니다. 도 2.1에 도시되어 있다. 대화 상자를 그 자체로 클래스로 구현합니다. 이를 통해 자체 신호와 슬롯을 갖춘 독립적인 독립형 구성 요소로 만들 수 있습니다. http://thisthread.blogspot.com/2010/06/qdialog-subclass.html 예제를 볼 수 있습니다. 그리고 여기에 http://www.informit.com/articles/article.aspx?p=1405224 위젯 플래그 f는 QWidget 생성자로 전달됩니다. 예를 들어 대화 상자의 제목 표시줄에 이 단추를 원하지 않는 경우 Qt::WindowTitleHint | Qt:::윈도우시스템메뉴힌트 사소한 마법사 예제에서는 QWizardPage의 세 인스턴스와 QWizard의 인스턴스 1개를 사용하여 선형 3페이지 등록 마법사를 만드는 방법을 보여 줍니다. 탭 대화 상자 예제에서는 QTabWidget 클래스를 사용하여 탭 대화 상자를 구성하는 방법을 보여 주며 있습니다.

이 예제에서는 위젯이 최상위 창으로 사용되지만 상위 위젯을 사용할 수 있도록 생성자도 정의합니다. 이렇게 하면 대화 상자를 응용 프로그램의 기본 창 위에 배치할 수 있습니다. ApplicationsTab은 유용한 정보를 표시하지 않지만 보다 복잡한 예제의 템플릿으로 사용할 수 있습니다. 문자열 리터럴에서 앰퍼샌드(`&`)를 사용하여 바로 가기 키를 나타냅니다. 예를 들어 11줄에는 바로 가기 키를 지원하는 플랫폼에서 Alt+F를 눌러 사용자가 활성화할 수 있는 찾기 버튼이 만들어집니다. 앰퍼샌드는 포커스를 제어하는 데 사용할 수도 있습니다: 6번 라인에서는 바로 가기 키(Alt+W)가 있는 레이블을 만들고, 8줄에서는 레이블의 버디를 라인 편집기로 설정합니다. 버디는 레이블의 바로 가기 키를 누를 때 포커스를 허용하는 위젯입니다. 따라서 사용자가 Alt+W(레이블의 바로 가기)를 누르면 포커스가 선 편집기(레이블의 버디)로 이동합니다.

클래스 마법사 예제에서는 QWizard를 사용하여 선형 마법사를 구현하는 방법을 보여 주며 있습니다. 확장 예제에서는 QAbstractButton::toggled() 신호 및 QWidget::setVisible() 슬롯을 사용하여 QDialog에 확장을 추가하는 방법을 보여 주며 있습니다. 사례 1 단추를 클릭해도 대화 상자가 닫히지 않습니다. . 하위 레이아웃이 상위 레이아웃(줄 25, 33 및 34)에 추가되면 하위 레이아웃이 자동으로 다시 부모됩니다. 그런 다음 주 레이아웃이 대화 상자(35줄)에 설치되면 대화 상자의 자식이 되고 레이아웃의 모든 위젯이 다시 부모로 되어 대화 상자의 자식으로 지정됩니다. 결과 부모-자식 계층 구조는 그림 2.3에 설명되어 있습니다. 소스 코드는 finddialog.h 및 finddialog.cpp의 두 파일에 분산되어 있습니다. 우리는 finddialog.h로 시작합니다. Q_OBJECT 매크로를 사용하는 클래스에는 moc가 실행되어야 합니다.

qmake가 자동으로 makefile에 필요한 규칙을 추가하기 때문에 이것은 문제가되지 않습니다. 그러나 qmake를 사용하여 메이크 파일을 다시 생성하는 것을 잊어 버린 경우 moc가 실행되지 않으면 링커는 일부 기능이 선언되었지만 구현되지 않았다고 불평합니다.