PyQt - Класс QDialog
А QDialogвиджет представляет собой окно верхнего уровня, в основном используемое для сбора ответа от пользователя. Его можно настроить какModal (где он блокирует свое родительское окно) или Modeless (диалоговое окно можно пропустить).
PyQt API имеет ряд предварительно настроенных виджетов Dialog, таких как InputDialog, FileDialog, FontDialog и т. Д.
пример
В следующем примере атрибут WindowModality диалогового окна определяет, является ли оно модальным или немодальным. Любую кнопку в диалоговом окне можно установить по умолчанию. Диалог отклоняется методом QDialog.reject (), когда пользователь нажимает клавишу Escape.
PushButton в окне QWidget верхнего уровня при нажатии создает диалоговое окно. Диалоговое окно не имеет элементов управления сворачиванием и разворачиванием в строке заголовка.
Пользователь не может перевести это диалоговое окно в фоновый режим, поскольку его WindowModality имеет значение ApplicationModal.
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
def window():
app = QApplication(sys.argv)
w = QWidget()
b = QPushButton(w)
b.setText("Hello World!")
b.move(50,50)
b.clicked.connect(showdialog)
w.setWindowTitle("PyQt Dialog demo")
w.show()
sys.exit(app.exec_())
def showdialog():
d = QDialog()
b1 = QPushButton("ok",d)
b1.move(50,50)
d.setWindowTitle("Dialog")
d.setWindowModality(Qt.ApplicationModal)
d.exec_()
if __name__ == '__main__':
window()
Приведенный выше код дает следующий вывод -