【PyQt】QDialog 对话框

QDialog 对话框

🚀 QDialog 是 PyQt 中用于创建对话框的核心类,适用于与用户的短暂交互场景,例如输入获取、消息提示或配置设置。


主要功能

核心能力

  • 创建独立对话框窗口
  • 添加控件(如 QLabelQLineEdit按钮等)
  • 灵活设置布局(支持 QVBoxLayout/QHBoxLayout
  • 支持模态/非模态显示

快速上手指南

1. 创建基础对话框

dialog = QDialog(parent=self)  # 创建对话框实例
dialog.setWindowTitle("📝 用户信息输入")  # 设置标题

2. 添加交互控件

# 文本标签
label = QLabel("请输入姓名:")

# 输入框
name_input = QLineEdit()

# 按钮组
buttons = QDialogButtonBox(
    QDialogButtonBox.Ok | QDialogButtonBox.Cancel
)

3. 布局管理

layout = QVBoxLayout()
layout.addWidget(label)
layout.addWidget(name_input)
layout.addWidget(buttons)
dialog.setLayout(layout)  # ⚡ 应用布局

4. 信号连接

buttons.accepted.connect(dialog.accept)  # ✅ 确定按钮
buttons.rejected.connect(dialog.reject)   # ❌ 取消按钮

完整示例代码

import sys
from PyQt5.QtWidgets import (
    QApplication,
    QMainWindow,
    QPushButton,
    QDialog,
    QVBoxLayout,
    QLabel,
    QLineEdit,
    QDialogButtonBox
)

class AppWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        
        # 主窗口配置
        self.setWindowTitle("🏠 主界面")
        self.resize(300, 200)
        
        # 触发按钮
        self.btn = QPushButton("打开对话框 🪟", self)
        self.setCentralWidget(self.btn)
        self.btn.clicked.connect(self.show_dialog)

    def show_dialog(self):
        # 对话框配置
        dialog = QDialog(self)
        dialog.setWindowTitle("🔍 信息收集")
        
        # 布局构建
        layout = QVBoxLayout()
        
        # 信息输入组件
        layout.addWidget(QLabel("您的昵称:"))
        self.nickname = QLineEdit()
        layout.addWidget(self.nickname)
        
        # 操作按钮组
        btns = QDialogButtonBox(
            QDialogButtonBox.Ok | QDialogButtonBox.Cancel
        )
        btns.accepted.connect(dialog.accept)
        btns.rejected.connect(dialog.reject)
        layout.addWidget(btns)
        
        dialog.setLayout(layout)

        # 处理对话框结果
        if dialog.exec_() == QDialog.Accepted:
            print(f"✅ 输入内容: {self.nickname.text()}")
        else:
            print("❌ 用户取消操作")

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

效果展示

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shanks66

你的鼓励是我创作的最大动力!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值