PyQt5-QDialog 클래스

QDialog위젯은 사용자의 응답을 수집하는 데 주로 사용되는 최상위 창을 표시합니다. 다음과 같이 구성 할 수 있습니다.Modal (부모 창을 차단하는 위치) 또는 Modeless (대화창은 무시할 수 있습니다).

PyQt API에는 InputDialog, FileDialog, FontDialog 등과 같은 미리 구성된 여러 대화 상자 위젯이 있습니다.

다음 예에서 WindowModalityDialog 창의 속성은 모달인지 모덜리스인지를 결정합니다. 대화 상자의 모든 단추를 기본값으로 설정할 수 있습니다. 대화 상자는QDialog.reject() 사용자가 Esc 키를 누를 때의 메서드입니다.

최상위 QWidget 창의 PushButton을 클릭하면 대화 상자 창이 생성됩니다. 대화 상자의 제목 표시 줄에는 최소화 및 최대화 컨트롤이 없습니다.

WindowModality가 다음으로 설정되어 있기 때문에 사용자는이 대화 상자를 백그라운드에서 해제 할 수 없습니다. ApplicationModal.

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

def window():
   app = QApplication(sys.argv)
   w = QWidget()
   btn = QPushButton(w)
   btn.setText("Hello World!")
   btn.move(100,50)
   btn.clicked.connect(showdialog)
   w.setWindowTitle("PyQt Dialog demo")
   w.show()
   sys.exit(app.exec_())

def showdialog():
   dlg = QDialog()
   b1 = QPushButton("ok",dlg)
   b1.move(50,50)
   dlg.setWindowTitle("Dialog") 9. PyQt5 — QDialog Class
   dlg.setWindowModality(Qt.ApplicationModal)
   dlg.exec_()

if __name__ == '__main__':
   window()

위의 코드는 다음 출력을 생성합니다. 메인 창에서 버튼을 클릭하면 대화 상자가 나타납니다.