QT 모달 대화 상자와 모덜리스 대화 상자

모달 대화 상자 (모달 대화)과 비 모달 대화 상자 (모덜리스 대화 상자) 개념은 아니다 Qt는 다른 다양한 플랫폼의 존재, 독특한. 거기는 같은 비 모달 대화 상자로, 모달 대화 상자라고 불린다. 소위 모달 대화 상자를 닫을 때까지 대화 상자가 전에 닫혀 있지, 사용자는 다른 윈도우의 동일한 응용 프로그램과 상호 작용할 수 없습니다. 들어 비 모달 또한 응용 프로그램과 상호 작용할 수있는 다른 창을 선택, 대화 상자, 열 때, 사용자가 선택하고 대화 상자와 상호 작용합니다.

에서 Qt는 , 디스플레이 대화 상자 두 가지 방법이 있습니다, 하나는 항상 간부 () 메소드를 사용하는 것입니다 모달 대화 상자를 표시를, 다른 어느 대화 할 수 있습니다 쇼 () 메소드를 사용하는 것입니다 모드 도 표시 할 수있다 모덜리스 가 결정, 표시를 모달 또는 모덜리스 대화 상자를 모달 속성을.

에서 Qt를Qt를 모달모달리스 를 선택하는 대화 상자가 모달 속성에 의해 결정된다. 우리는 다음과 같이 정의된다 살펴 모달 특성을 가지고 :

모달 : 부울 기본 경우, 속성 값 대화 상자가 거짓이므로 쇼는 대화 방법 ()에 표시됩니다 모덜리스 의. 속성 값이 true로 설정되어있는 경우에는 QWidget :: windowModality 속성에 작용 제공 모달 대화가되었다 Qt의 :: ApplicationModal.

중고 간부 () 메소드는 대화 상자, 모달 속성 값이 무시되고 설정 대화 상자가 표시됩니다 모달 대화 상자를.

일반적 속성을 모달 대화 상자를 설정하는 setModal () 메소드를 사용했다.

우리는 설정 대화 상자가 요약 모달 방식.

◆ 설정하려면 모달 대화 상자를 단순한는 간부 () 메소드, 다음 예제 코드를 사용하는 것입니다 :

MyDialog에 myDlg; myDlg.exec는 (); 쇼 () 메소드는 다음 샘플 코드가 사용될 수있다 :

MyDialog에 myDlg; myDlg.setModal (TRUE); myDlg.show ();

◆ 설정하려면 모덜리스 () 메소드를 보여 주어야 대화를, 다음 샘플 코드 :

myDlg.setModal (거짓); MyDlg MyDialog에는
// 또는
myDlg.setModal ();
myDlg.show ();
다시 말하지만, 현재 일부 친구 모달 대화 상자와 비 모달 의 사용 그 오해 대화 상자의 이해가 쇼 () 메소드가 표시됩니다 모덜리스 정확하지 않은 대화 상자를.

팁 : 때때로 우리는에 대화가 필요 모덜리스 표시 형태를하지만 항상 모든의 상단에 다음 코드에 의해 제공 될 수있는 창을 요구한다 :

myDlg.setModal (거짓); MyDlg MyDialog에
// 또는
myDlg.setModal (); myDlg.show는 ();
// 키는이 라인이다
myDlg.setWindowFlags ( Qt는 :: WindowStaysOnTopHint);

에서 Qt를 작성하는 모달 대화 상자 인 QDialog 간부 인 기능의 주요 사용 :
SonDialog DLG (이);
INT 입술 dlg.exec = ();
경우 (입술 == 인 QDialog :: 수락)
{
QMessageBox :: 정보 (이, "정보", "당신은 OK 버튼을 클릭!");
}
if (res == QDialog::Rejected)
{
QMessageBox::information(this, “INFORMATION”, “You clicked CANCEL button!”);
}
正如上面代码所显示的,可以通过exec函数的返回值来判断用户点击了哪个按钮使得 模态对话框退出的,这可以使得我们能够根据用户的不同行为在退出 模态对话框之后采取不同的处理方法。

추천

출처blog.csdn.net/weixin_42536869/article/details/80795946