对话框

对话框是为了更好地实现人与程序的交互 对话框主要是完成特定场景下的功能,比如删除确认等.

QMessageBox

QMessageBox是普通的对话框

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys


def do_click():
        # QMessageBox 对话框
    # information: 信息对话框 parent, title, content 阻塞式
    # QMessageBox.information(window, '我是对话框的title', '我是对话框的内容')

    # question: 问答对话框
    # result = QMessageBox.question(window, 'title', 'content')
    # print(type(result))
    # if result == QMessageBox.Yes:
    #     print('yes')
    # else:
    #     print('no')

    # warining
    # QMessageBox.warning(window, 'title', 'content')

    # critical
    # QMessageBox.critical(window, 'title', 'content')

    # about
    QMessageBox.about(window, 'title', 'content')

    print('对话框消失了')


if __name__ == '__main__':
    # 创建app
    app = QApplication(sys.argv)

    # 窗体显示
    window = QWidget()

    # 按钮
    btn = QPushButton('弹出对话框')
    # 设置到界面
    btn.setParent(window)

    window.show()

    # 事件绑定
    btn.clicked.connect(do_click)

    # 执行app
    sys.exit(app.exec_())

对话框类型

对话框类型 描述
QMessageBox.information(QWidget, title, text, buttons, defaultButton) 弹出消息对话框
QMessageBox.question(QWidget, title, text, buttons, defaultButton) 弹出问答对话框
QMessageBox.warning(QWidget, title, text, buttons, defaultButton) 弹出警告对话框
QMessageBox.ctitical(QWidget, title, text, buttons, defaultButton) 弹出严重错误对话框
about(QWidget, title, text) 弹出关于对话框

按钮类型

类型 描述
QMessageBox.Ok 确定
QMessageBox.Cancel 取消
QMessageBox.Yes 同意
QMessageBox.No 不同意
QMessageBox.Abort 终止
QMessageBox.Retry 重试
QMessageBox.Ignore 忽略

QInputDialog

QIputDialog是输入对话框,由一个文本框和两个按钮(OK按钮和Cancel按钮)组成

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys

def func():
    str,success = QInputDialog.getText(w,'提示','请输入角色名称')
    if success:
        edit.setText(str)


# 1.创建应用程序
app = QApplication(sys.argv)

# 2.创建窗口
w = QWidget()


# 修改窗口标题
w.setWindowTitle('输入提示框')
"""------------------ 创建界面 ------------------"""
layout = QHBoxLayout()
# 添加布局
w.setLayout(layout)

# 控件
btn = QPushButton('创建角色')
edit = QLineEdit()
# 控件添加到布局中
layout.addWidget(btn)
layout.addWidget(edit)

# 信号和槽函数绑定
btn.clicked.connect(func)

# 3.显示窗口
w.show()

# 4.等待窗口停止
sys.exit(app.exec())