You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt6点击signinButton程序崩溃,退出码0xC0000409问题排查

PyQt6登录/注册页面崩溃问题修复(退出码0xC0000409)

问题原因分析

崩溃核心是代码中引用了未定义的控件属性,触发未捕获的AttributeError导致程序异常退出:

  • UI类中通过findChild获取signinButton并赋值给self.button,但后续错误使用self.signinButton连接信号,该属性未定义
  • Second类中同理,获取SubmitSignButton赋值给self.button,却用self.SubmitSignButton连接信号,属性未定义
  • UI类初始化时调用self.show(),之后又将实例添加到QStackedWidget,导致窗口重复显示引发冲突

修复后的代码

from PyQt6.QtWidgets import (
    QMainWindow, QApplication, QDialog, QDialogButtonBox, QLabel, QTextEdit, QPushButton, QMessageBox, QMdiArea,
    QTableWidgetItem, QStackedWidget
)
from PyQt6 import uic
import sys


class UI(QMainWindow):
    def __init__(self):
        super(UI, self).__init__()
        uic.loadUi(r"C:\Users\csc\Documents\Rentour\front.ui", self)
        # 正确绑定按钮控件到对应属性
        self.signinButton = self.findChild(QPushButton, "signinButton")
        self.signinButton.clicked.connect(self.OpenSignUp)

    def OpenSignUp(self):
        sign_up = Second()
        widget.addWidget(sign_up)
        widget.setCurrentIndex(widget.currentIndex() + 1)

class Second(QMainWindow):
    def __init__(self):
        super(Second, self).__init__()
        uic.loadUi(r"C:\Users\csc\Documents\Rentour\signpopup.ui", self)
        # 正确绑定按钮控件到对应属性
        self.SubmitSignButton = self.findChild(QPushButton, "SubmitSignButton")
        self.SubmitSignButton.clicked.connect(self.SignUpSave)

    def SignUpSave(self):
        email = self.EmailLine.text()
        phoneno = self.PhonenoLine.text()
        name = self.NameLine.text()
        password = self.PasswordLine.text()
        print(password)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    widget = QStackedWidget()
    mainwindow = UI()
    widget.addWidget(mainwindow)
    widget.show()
    sys.exit(app.exec())

额外优化建议

  • 将widget作为参数传递给UI类,避免全局变量,提升代码封装性
  • 确保Qt Designer中控件的objectName与代码引用名称完全一致(区分大小写)
  • 可添加输入内容合法性校验(如邮箱格式、密码长度等)

内容的提问来源于stack exchange,提问作者Aaron Matthew gino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 07:17:12