PyQt5-QDialogクラス

A QDialogウィジェットは、主にユーザーからの応答を収集するために使用されるトップレベルのウィンドウを表示します。次のように構成できますModal (親ウィンドウをブロックする場所)または Modeless (ダイアログウィンドウはバイパスできます)。

PyQt APIには、InputDialog、FileDialog、FontDialogなどの事前構成されたダイアログウィジェットがいくつかあります。

次の例では、 WindowModalityダイアログウィンドウの属性は、モーダルかモードレスかを決定します。ダイアログの任意の1つのボタンをデフォルトに設定できます。ダイアログはによって破棄されますQDialog.reject() ユーザーがEscキーを押したときのメソッド。

トップレベルのQWidgetウィンドウのプッシュボタンをクリックすると、ダイアログウィンドウが生成されます。ダイアログボックスのタイトルバーには、最小化および最大化のコントロールがありません。

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()

上記のコードは次の出力を生成します。メインウィンドウのボタンをクリックすると、ダイアログボックスがポップアップします-