PyQt5系列文章
效果图
完整代码
import sys
from PyQt5.QtWidgets import QPushButton,QLabel,QDialog,QHBoxLayout,QVBoxLayout,QWidget,QApplication,QMainWindow
from PyQt5.QtCore import *
class QDialogDemo(QMainWindow):
def __init__(self):
super(QDialogDemo, self).__init__()
#设置窗口大小
self.resize(400, 150)
self.setWindowTitle("QDialogDemo")
btn = QPushButton("开始")
btn.clicked.connect(self.btnClick)
#创建水平布局
layout = QHBoxLayout()
layout.addWidget(btn)
mainFrame = QWidget()
mainFrame.setLayout(layout)
self.setCentralWidget(mainFrame)
def btnClick(self):
self.dialog = QDialog()
self.dialog.resize(100, 100)
self.dialog.setWindowTitle("提示信息!")
vbox = QVBoxLayout()
label = QLabel("这是QDialog测试消息,确定保存信息?")
okBtn = QPushButton("确定")
okBtn.clicked.connect(self.okClick)
vbox.addWidget(label)
vbox.addWidget(okBtn)
self.dialog.setLayout(vbox)
self.dialog.setWindowModality(Qt.ApplicationModal)
self.dialog.exec_()
def okClick(self):
print("确定保存")
self.dialog.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QDialogDemo()
main.show()
sys.exit(app.exec_())
其中最关键的代码是
self.dialog = QDialog()
self.dialog.resize(100, 100)
self.dialog.setWindowTitle("提示信息!")
这里新建QDialog
对象,并指定对话框的大小和标题。
vbox = QVBoxLayout()
label = QLabel("这是QDialog测试消息,确定保存信息?")
okBtn = QPushButton("确定")
QDialog
对话框是空白的,没有布局也没有控件,所以需要先创建控件和布局对象,把控件添加到布局中,最后设置对话框的布局即可。