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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM