pyqt5设置dialog的标题_六、pyqt5对话框——QInputDialog、QColorDialog、QFontDialog、QMessageBox、QFileDialog...

目录:

一、对话框综合示例

二、QDialog

三、QInputDialog

四、QMessageDialog

五、QFileDialog

pyqt5的对话框有多种类型,比如输入对话框(QInputDialog)、颜色对话框(QColorDialog)、字体对话框(QFontDialog)、消息对话框(QMessageBox)、文件对话框(QFileDialog)等,他们都是Dialog的子类。

对话框的使用可以提高人机交互,方便用户输入数据,修改参数,改变设置,选择文件等。

一、对话框综合示例

下面,我们通过一个小例子初步了解各类对话框。首先需要说明下,所有的对话框默认为模态窗口,即用户必须处理完当前对话框之后,才可以与父窗口交互。

1 importsys,os2 from PyQt5.QtGui importQIcon3 from PyQt5.QtWidgets import(QWidget,QHBoxLayout,QPushButton,QTextEdit,QFontDialog, QApplication,4 QColorDialog,QInputDialog,QVBoxLayout,QFileDialog,QMessageBox)5

6 path = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))7

8 classMyWindow(QWidget):9 def __init__(self):10 super(MyWindow, self).__init__()11 self.initUI()12

13 definitUI(self):14 self.setWindowTitle('对话框示例')15 self.setWindowIcon(QIcon(r'%s\4.图标素材\chuan.ico' %path))16 self.setGeometry(600,300,500,400)17

18 '''创建三个按键,一个多行文本框'''

19 btn_input = QPushButton('输入')20 btn_font = QPushButton('字体')21 btn_color = QPushButton('颜色')22 btn_file = QPushButton('文件')23 self.text =QTextEdit()24

25 '''将三个按键布置在用一个水平布局容器中,然后将水平布局视为一个整体,与文本框布置在垂直布局中'''

26 hbx =QHBoxLayout()27 hbx.addWidget(btn_input)28 hbx.addWidget(btn_font)29 hbx.addWidget(btn_color)30 hbx.addWidget(btn_file)31

32 vbx =QVBoxLayout()33 vbx.addLayout(hbx)34 vbx.addWidget(self.text)35

36 self.setLayout(vbx)37

38 btn_input.clicked.connect(self.inputDialog)39 btn_font.clicked.connect(self.fontDialog)40 btn_color.clicked.connect(self.colorDialog)41 btn_file.clicked.connect(self.fileDialog)42

43 definputDialog(self):44 text,ok = QInputDialog.getText(self,'输入文本框','请输入您的文本内容')45 #返回值是一个包含两个元素的元组

46 ifok:47 self.text.setText(text)48

49 deffontDialog(self):50 font, ok = QFontDialog.getFont() #返回值是一个包含两个元素的元组

51 ifok:52 self.text.setFont(font)53

54 defcolorDialog(self):55 color =QColorDialog.getColor()56 if color.isValid: #通过isValid()可以判断用户选择的颜色是否有效,若用户选择取消,isValid()将返回false

57 self.text.setTextColor(color)58

59 deffileDialog(self):60 '''打开单个文件'''

61 fname, _ = QFileDialog.getOpenFileName(self, '打开', '/home','Text Files (*.txt)')62 #返回值是包含2个元素的元组,但这里只需要第一个;这里还加了一个过滤器,只打开txt文件

63 iffname:64 f = open(fname, 'r')65 with f:66 data =f.read()67 self.text.setText(data)68

69 defcloseEvent(self, QCloseEvent):70 reply

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值