PyQt - QDialog 類



一個QDialog 控制元件呈現一個頂級視窗,主要用於收集使用者的響應。它可以配置為模態(阻止其父視窗)或非模態(可以繞過對話方塊視窗)。

PyQt API 有許多預配置的對話方塊控制元件,例如 InputDialog、FileDialog、FontDialog 等。

示例

在下面的示例中,對話方塊視窗的 WindowModality 屬性決定它是模態還是非模態。可以將對話方塊上的任意一個按鈕設定為預設按鈕。當用戶按下 Escape 鍵時,對話方塊將透過 QDialog.reject() 方法被丟棄。

頂級 QWidget 視窗上的一個 PushButton 單擊時會生成一個對話方塊視窗。對話方塊框在其標題欄上沒有最小化和最大化控制元件。

使用者無法將此對話方塊框置於後臺,因為其 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()

以上程式碼產生以下輸出:

QDialog Class Output
廣告
© . All rights reserved.