2011-09-21 4 views
1

Qt 사용자 지정 대화 상자 내에서 컨트롤을 초기화하는 데 필요한 절차가 무엇인지 알고 싶습니다. 필자가 작성한 코드에서 대화 상자는 생성 중에 대화 상자 클래스에 전달 된 (참조로) 개체의 디렉터리를 포함하는 QListView을 표시합니다. 대화 상자가 표시되면 목록에 현재 개체에 구성된 디렉터리가 표시되도록해야합니다.Qt : 대화 상자 위젯을 초기화하는 방법은 무엇입니까?

어디서해야합니까? 아마도 showEvent() 메서드를 재정의 한 것일까 요?

배경 : 나는 다시 일에서 MFC 프로그래밍을 많이 할하는 데 사용하고, OnCreate 방법에 물건을 이런 종류의 일을 한 것, 또는 그러한는 window 객체가 생성되자.

답변

2

고맙게도 Qt는 당신이 원하지 않는 한, 물건을 만드는 순간을 찾기 위해 어떤 후킹도 요구하지 않습니다. 당신이 대화 상자에 대한 Qt의 예를 통해 보면, 대부분은 생성자에서 모든 구성을 수행

http://doc.qt.io/archives/qt-4.7/examples-dialogs.html

탭 대화 예 - 예를 들어 - 나던 "주문형"탭의 초기화 할 . 당신은 currentChanged 신호를 통해 뭔가를 연결할 수 있지만 :

http://doc.qt.io/archives/qt-4.7/qtabwidget.html#currentChanged

마법사 스타일의 대화 상자가 initializePagecleanupPage 방법이 있습니다

http://doc.qt.io/archives/qt-4.7/qwizardpage.html#initializePage

http://doc.qt.io/archives/qt-4.7/qwizardpage.html#cleanupPage

그러나 전반적으로를, 당신을 그냥 생성자를 사용할 수 있습니다. 기본 예외는 실제로 (exec을 통해) 표시 할 때보 다 훨씬 이전에 대화 상자를 할당하는 것이고 실제로 표시 될 때까지는 일부분의 성능 부담을 감수하고 싶지 않을 것입니다. 이러한 사례는 드문 경우 여야하며 가장 쉬운 방법은 사용자가 직접 호출하는 함수 (예 : finalizeCreationBeforeExec)를 추가하는 것입니다.

관련 문제