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

1. QMessageBox

QMessageBox是普通的对话框
image.png
代码示例:

  1. from PyQt5.QtWidgets import *
  2. from PyQt5.QtCore import *
  3. from PyQt5.QtGui import QIcon
  4. import sys
  5. def deleteUser():
  6. # 弹出对话框,让用户确认
  7. result = QMessageBox.question(w, '提示', '确认要删除好朋友吗?',
  8. QMessageBox.Ok | QMessageBox.Cancel,
  9. QMessageBox.Cancel)
  10. if result == QMessageBox.Ok:
  11. print('确认删除')
  12. elif result == QMessageBox.Cancel:
  13. print('取消删除')
  14. # 1.创建应用程序
  15. app = QApplication(sys.argv)
  16. # 2.创建窗口
  17. w = QWidget()
  18. # 修改窗口标题
  19. w.setWindowTitle('对话框')
  20. """------------------ 创建按钮 ------------------"""
  21. btn = QPushButton('删除用户')
  22. # 显示控件
  23. btn.setParent(w)
  24. # 信号和槽绑定
  25. btn.clicked.connect(deleteUser)
  26. # 3.显示窗口
  27. w.show()
  28. # 4.等待窗口停止
  29. sys.exit(app.exec())

2. QIputDialog

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

运行程序,点击创建角色
代码示例:

  1. from PyQt5.QtWidgets import *
  2. from PyQt5.QtCore import *
  3. from PyQt5.QtGui import QIcon
  4. import sys
  5. def func():
  6. str,success = QInputDialog.getText(w,'提示','请输入角色名称')
  7. if success:
  8. edit.setText(str)
  9. # 1.创建应用程序
  10. app = QApplication(sys.argv)
  11. # 2.创建窗口
  12. w = QWidget()
  13. # 修改窗口标题
  14. w.setWindowTitle('输入提示框')
  15. """------------------ 创建界面 ------------------"""
  16. layout = QHBoxLayout()
  17. # 添加布局
  18. w.setLayout(layout)
  19. # 控件
  20. btn = QPushButton('创建角色')
  21. edit = QLineEdit()
  22. # 控件添加到布局中
  23. layout.addWidget(btn)
  24. layout.addWidget(edit)
  25. # 信号和槽函数绑定
  26. btn.clicked.connect(func)
  27. # 3.显示窗口
  28. w.show()
  29. # 4.等待窗口停止
  30. sys.exit(app.exec())