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

 

转载于:https://www.cnblogs.com/ygzhaof/p/10064851.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值