PyQt5第七部分-对话框-QErrorMessage, QMessageBox, QFileDialog

0 前言

>>返回Python系列文章目录<<

对话窗口是QDialog的子类,用于弹出临时窗口进行交互

继承关系:

QWidget

  • QDialoh
    • QColorDialog
    • QErrorMessage
    • QFileDialog
    • QFontDialog
    • QInputDialog
    • QMessageBox
    • QProgressDialog
    • QWizard

1 错误消息对话框 QErrorMessage

1.1 方法列表

QErrorMessage类说明
self=QErrorMessage(parent)创建实例
self.setWindowTitle(title)设置标题
self.showMessage(text)设置文本
继承自QDialog类的方法
self.exec()以模式显示窗口,锁住程序以等待窗口的返回值
继承自QWidget类的方法
x, y, width, height, ...几何类方法,详见窗口的几何数据
self.setWindowTitle(title)设置标题栏文字
title->字符串
self.setWindowIcon(icon)设置图标
icon->QIcon类
self.show()显示窗口
self.close()关闭窗口

1.2 实例 错误信息

import sys
from PyQt5.QtWidgets import *

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.move(500, 400)
        self.setFixedSize(300, 200)
        vlayout = QVBoxLayout()
        self.setLayout(vlayout)
        button = QPushButton('错误')
        button.clicked.connect(self.showErrorMessage)
        vlayout.addWidget(button)

    def showErrorMessage(self):
        message = QErrorMessage(self)
        message.setWindowTitle('错误')
        message.showMessage('单击错误')
        message.exec_()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

在这里插入图片描述

2 通用对话框 QMessageBox

2.1 方法列表

QMessageBox类说明
self=QMessageBox()创建实例
=self.information(parent, title, text, buttons, default_button)创建信息框,返回选择的按钮
button->按钮
default_button->默认按钮
=self.question(parent, title, text, buttons, default_button)创建问答框,返回选择的按钮
button->按钮
default_button->默认按钮
=self.warning(parent, title, text, buttons, default_button)创建警告框,返回选择的按钮
button->按钮
default_button->默认按钮
=self.ctitical(parent, title, text, buttons, default_button)创建危险框,返回选择的按钮
button->按钮
default_button->默认按钮
self.about(parent, title, text)创建关于框
self.about(parent, title, text)创建关于框
QMessageBox.Yes
QMessageBox.No
QMessageBox.Cancel
按钮
继承自QDialog类的方法
self.exec()以模式显示窗口,锁住程序以等待窗口的返回值
继承自QWidget类的方法
x, y, width, height, ...几何类方法,详见窗口的几何数据
self.setWindowTitle(title)设置标题栏文字
title->字符串
self.setWindowIcon(icon)设置图标
icon->QIcon类
self.show()显示窗口
self.close()关闭窗口

2.2 示例

import sys
from PyQt5.QtWidgets import *

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.move(500, 400)
        self.setFixedSize(400, 300)
        vlayout = QVBoxLayout()
        self.setLayout(vlayout)
        button = QPushButton('错误')
        button.clicked.connect(self.showErrorMessage)
        vlayout.addWidget(button)

    def showErrorMessage(self):
        reply = QMessageBox.question(self, '退出', '确定退出?', \
        QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel, QMessageBox.Cancel)
        if reply == QMessageBox.Yes:
            print('退出')
        else:
            print('不退出')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

在这里插入图片描述

3 文件对话框 QFileDialog

QFileDialog是用于打开和保存文件的标准对话框。QFileDialog类继承自QDialog类

3.1 方法列表

QFileDialog类说明
self=QFileDialog(parent)创建实例
self.setFileMode()输入QFileDialog下的常量
QFileDialog.AnyFile:任何文件
QFileDialog.ExistingFile:已存在的文件
QFileDialog.Directory:文件目录
QFileDialog.ExistingFiles:已存在的多个文件
=self.selectedFiles()返回的列表,列表中下标0元素为选中的文件地址,正斜杠分隔
self.getSaveFileName(file)使用用户选择的文件名保存文件
继承自QDialog类的方法
self.exec()以模式显示窗口,锁住程序以等待窗口的返回值
继承自QWidget类的方法
x, y, width, height, ...几何类方法,详见窗口的几何数据
self.setWindowTitle(title)设置标题栏文字
title->字符串
self.setWindowIcon(icon)设置图标
icon->QIcon类
self.show()显示窗口
self.close()关闭窗口

3.2 示例 选择文件,显示路径

import sys
from PyQt5.QtWidgets import *

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.move(500, 400)
        self.setFixedSize(300, 300)
        self.setWindowTitle('显示文件内容')
        layout = QVBoxLayout()
        self.setLayout(layout)

        content = QLineEdit()
        layout.addWidget(content)

        button1 = QPushButton('加载文件夹')
        button1.clicked.connect(lambda: self.getDir(content))
        layout.addWidget(button1)

        button2 = QPushButton('加载文件')
        button2.clicked.connect(lambda: self.getFile(content))
        layout.addWidget(button2)

    def getDir(self, content):
        diag = QFileDialog()
        diag.setFileMode(QFileDialog.Directory)
        if diag.exec():
            file_path = diag.selectedFiles()[0]
            content.setText(file_path)

    def getFile(self, content):
        diag = QFileDialog()
        diag.setFileMode(QFileDialog.AnyFile)
        if diag.exec():
            file_path = diag.selectedFiles()[0]
            content.setText(file_path)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

在这里插入图片描述
>>返回Python系列文章目录<<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值