ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 简介 * 对话框是为了更好的实现人与程序的交互 * 对话框主要是完成特定场景下的功能,比如确认删除等 QDialog的子类有: QMessageBox, QFileDialog, QFontDialog.DInputDialog等 **QMessageBox** * reply = QMessageBox.information * reply = QMessageBox.question **QInputDialog** * QInputDialog控件是一个标准对话框,由一个文本框和两个按钮(ok按钮和cancel按钮)组成 * 创建游戏角色,弹出的对话框 **单选框** **QRadioButton** * QRadioButton是单选按钮,它提供了一组可供选择的按钮和文本标签,用户可以选择其中一个选项 * 标签用于显示对应的文本消息 * 单选框选中的信号是: toggled # 弹出对话框 ~~~ from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * import sys # 槽函数 def deal(): print('点击了槽函数') # 参数1: 显示在哪个窗体中 # 参数2: 标题 # 参数3: 提示内容 # 参数4: 按钮个数 # 参数5: 默认按钮选中 # 默认是ok QMessageBox.information(widget, '提示', '你确定要删除吗?', QMessageBox.Ok | QMessageBox.Cancel, QMessageBox.Ok) # 创建个应用程序 需要加上参数 app = QApplication(sys.argv) # 创建窗口 widget = QWidget() # 修改窗口大小 widget.resize(300, 400) # 设置窗口的标题 widget.setWindowTitle('对话框') # 创建按钮 btn = QPushButton() btn.setText('显示对话框') # 显示按钮 btn.setParent(widget) # 处理按钮点击事件 btn.clicked.connect(deal) # 显示窗口 widget.show() # 系统安全退出 sys.exit(app.exec()) ~~~ # 输入对话框 ~~~ from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * import sys def create(): print('创建角色') str, ok = QInputDialog.getText(widget, '提示', '请输入角色') if ok: print(str) # 创建个应用程序 需要加上参数 app = QApplication(sys.argv) # 创建窗口 widget = QWidget() # 修改窗口大小 widget.resize(300, 400) # 设置窗口的标题 widget.setWindowTitle('输入框对话框') # 创建输入框 btn = QPushButton() btn.setText('创建角色') btn.clicked.connect(create) # 显示按钮 btn.setParent(widget) # 显示窗口 widget.show() # 系统安全退出 sys.exit(app.exec()) ~~~ # 单选框 ![](https://box.kancloud.cn/e4277fd73725f09af88215667f9746ca_538x364.png) ~~~ from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * import sys def deal(btn): print('切换状态') if btn.isChecked(): print(btn.text()) # 创建个应用程序 需要加上参数 app = QApplication(sys.argv) # 创建窗口 widget = QWidget() # 修改窗口大小 widget.resize(300, 400) # 设置窗口的标题 widget.setWindowTitle('单选框') # 创建个布局 layout = QHBoxLayout() ra1 = QRadioButton('button1') # 设置信号 ra1.toggled.connect(lambda :deal(ra1)) ra2 = QRadioButton('button2') # 设置信号 ra2.toggled.connect(lambda :deal(ra2)) # 默认选中1个 ra2.setChecked(True) # 添加2个单选框 layout.addWidget(ra1) layout.addWidget(ra2) widget.setLayout(layout) # 显示窗口 widget.show() # 系统安全退出 sys.exit(app.exec()) ~~~ # 复选框 ~~~ from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * import sys def deal(btn): if btn.isChecked(): print(btn.text()) # 创建个应用程序 需要加上参数 app = QApplication(sys.argv) # 创建窗口 widget = QWidget() # 修改窗口大小 widget.resize(300, 400) # 设置窗口的标题 widget.setWindowTitle('复选框') # 创建布局 layout = QHBoxLayout() label = QLabel('爱好') layout.addWidget(label) ck1 = QCheckBox('抽烟') ck1.toggled.connect(lambda :deal(ck1)) ck2 = QCheckBox('喝酒') ck2.toggled.connect(lambda :deal(ck2)) ck3 = QCheckBox('烫头') ck3.toggled.connect(lambda :deal(ck3)) layout.addWidget(ck1) layout.addWidget(ck2) layout.addWidget(ck3) # 显示布局 widget.setLayout(layout) # 显示窗口 widget.show() # 系统安全退出 sys.exit(app.exec()) ~~~