PyQt - QDialog Sınıfı

Bir QDialogwidget, çoğunlukla kullanıcıdan yanıt toplamak için kullanılan üst düzey bir pencere sunar. Olacak şekilde yapılandırılabilirModal (ana penceresini engellediği yerde) veya Modeless (diyalog penceresi atlanabilir).

PyQt API, InputDialog, FileDialog, FontDialog gibi önceden yapılandırılmış bir dizi Dialog widget'ına sahiptir.

Misal

Aşağıdaki örnekte, Dialog penceresinin WindowModality niteliği, kipli mi yoksa modelsiz mi olduğuna karar verir. İletişim kutusundaki herhangi bir düğme varsayılan olarak ayarlanabilir. İletişim kutusu, kullanıcı Escape tuşuna bastığında QDialog.reject () yöntemi tarafından atılır.

Üst düzey QWidget penceresindeki bir PushButton, tıklandığında bir İletişim penceresi oluşturur. Bir İletişim kutusunun başlık çubuğunda simge durumuna küçültme ve büyütme denetimleri yoktur.

WindowModality, ApplicationModal olarak ayarlandığından, kullanıcı bu iletişim kutusunu arka planda yeniden devredemez.

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

Yukarıdaki kod aşağıdaki çıktıyı üretir -