PyQt - Lớp QDialog
A QDialogwidget trình bày một cửa sổ cấp cao nhất chủ yếu được sử dụng để thu thập phản hồi từ người dùng. Nó có thể được cấu hình để trở thànhModal (nơi nó chặn cửa sổ mẹ của nó) hoặc Modeless (có thể bỏ qua cửa sổ hộp thoại).
API PyQt có một số tiện ích con Dialog được định cấu hình sẵn như InputDialog, FileDialog, FontDialog, v.v.
Thí dụ
Trong ví dụ sau, thuộc tính WindowModality của cửa sổ Dialog quyết định nó là modal hay modeless. Bất kỳ một nút nào trên hộp thoại đều có thể được đặt làm mặc định. Hộp thoại bị loại bỏ bởi phương thức QDialog.reject () khi người dùng nhấn phím Escape.
Một PushButton trên cửa sổ QWidget cấp cao nhất, khi được nhấp vào, sẽ tạo ra một cửa sổ Hộp thoại. Hộp thoại không có các điều khiển thu nhỏ và tối đa hóa trên thanh tiêu đề của nó.
Người dùng không thể chuyển hộp thoại này ở chế độ nền vì WindowModality của nó được đặt thành 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()
Đoạn mã trên tạo ra kết quả sau: