[PyQt Tutorial]7.QDialog 类

时间:2022-07-23
本文章向大家介绍[PyQt Tutorial]7.QDialog 类,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

接下来这个专题介绍PyQt的一些内容

教程翻译自:

https://www.tutorialspoint.com/pyqt/pyqt_introduction.htm

由于本人也是学习状态,翻译可能不准确,请及时指出,我会很快修正

一些关键字会直接使用英文

目前该专题为纯理论,实际操作在完成后有演示

PyQt版本: PyQt4

1. 什么是QDialog

对话框类一般用来收集用户的响应

它能配置成如下2个形式:

Modal

他会阻塞(Block)父窗口,即取消前无法操作父窗口

Modeless

他可以被跳过(bypass)而在后台运行

他们由windowModality 属性决定

2.应用举例

按Escape键时,对话框由 QDialog.reject() 方法摧毁

如下代码当点击PushButton时弹出对话框

对话框无法在后台运行因为属性为Model

点击

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