PyQt5-对话框控件使用(QDialog)
PyQt5中对话框QDialog类的子类主要有QMessageBox、QFileDialog、QFontDialog、QInputDialog等
Dialog中的类常用方法如下:
QDialog控件例如:
1 #QDialog对话框使用 2 from PyQt5.QtWidgets import QVBoxLayout,QWidget,QApplication ,QHBoxLayout,QDialog,QPushButton,QMainWindow,QGridLayout,QLabel 3 4 from PyQt5.QtGui import QIcon,QPixmap,QFont 5 from PyQt5.QtCore import Qt 6 7 import sys 8 9 class WindowClass(QWidget): 10 11 def __init__(self,parent=None): 12 13 super(WindowClass, self).__init__(parent) 14 layout=QVBoxLayout() 15 self.btn=QPushButton() 16 self.btn.setText("显示对话框") 17 self.btn.clicked.connect(self.showDialog) 18 self.resize(500,500) 19 layout.addWidget(self.btn) 20 21 self.setLayout(layout) 22 23 def showDialog(self): 24 vbox=QVBoxLayout()#纵向布局 25 hbox=QHBoxLayout()#横向布局 26 panel=QLabel() 27 panel.setText("确定保存信息?") 28 self.dialog=QDialog() 29 self.dialog.resize(100,100) 30 self.okBtn=QPushButton("确定") 31 self.cancelBtn=QPushButton("取消") 32 33 #绑定事件 34 self.okBtn.clicked.connect(self.ok) 35 self.cancelBtn.clicked.connect(self.cancel) 36 37 self.dialog.setWindowTitle("提示信息!") 38 #okBtn.move(50,50)#使用layout布局设置,因此move效果失效 39 # 确定与取消按钮横向布局 40 hbox.addWidget(self.okBtn) 41 hbox.addWidget(self.cancelBtn) 42 43 #消息label与按钮组合纵向布局 44 vbox.addWidget(panel) 45 vbox.addLayout(hbox) 46 self.dialog.setLayout(vbox) 47 48 self.dialog.setWindowModality(Qt.ApplicationModal)#该模式下,只有该dialog关闭,才可以关闭父界面 49 self.dialog.exec_() 50 51 #槽函数如下: 52 def ok(self): 53 print("确定保存!") 54 self.dialog.close() 55 def cancel(self): 56 print("取消保存!") 57 self.dialog.close() 58 59 if __name__=="__main__": 60 app=QApplication(sys.argv) 61 win=WindowClass() 62 win.show() 63 sys.exit(app.exec_())