|
发表于 2024-2-17 12:12:09
|
显示全部楼层
非常抱歉,我看到了问题。在上面的代码中,我不小心将`login`方法和`open_main_window`方法缩进太深,导致它们成为`WelcomeWindow`类的内部方法,而不是`login_button.clicked`信号的槽函数。请将这两个方法的缩进修复为与`__init__`方法相同的缩进层级。以下是修改后的代码示例:import sysfrom PySide6.QtCore import Qt, QTimerfrom PySide6.QtGui import QFont, QColor, QPalette, QPixmap, QPainter, QPen, QBrush, QLinearGradientfrom PySide6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QProgressBar, QLineEdit, QPushButtonclass WelcomeWindow(QWidget): def __init__(self): super().__init__() self.setWindowTitle("欢迎窗体") self.setFixedSize(400, 300) layout = QVBoxLayout() self.setLayout(layout) self.password_label = QLabel("密码:") layout.addWidget(self.password_label) self.password_edit = QLineEdit() layout.addWidget(self.password_edit) self.login_button = QPushButton("确定") layout.addWidget(self.login_button) self.login_button.clicked.connect(self.login) self.main_window = None def login(self): password = self.password_edit.text() if password == "123456": self.hide() self.open_main_window() def open_main_window(self): self.main_window = QWidget() self.main_window.setWindowTitle("主窗体") self.main_window.setGeometry(100, 100, 500, 400) buttons_layout = QVBoxLayout() self.main_window.setLayout(buttons_layout) for i in range(1, 13): button = QPushButton(f"按钮{i}") buttons_layout.addWidget(button) self.main_window.show()if __name__ == "__main__": app = QApplication(sys.argv) welcome_window = WelcomeWindow() welcome_window.show() sys.exit(app.exec())非常抱歉给你带来的困惑,现在代码应该能够正常显示欢迎窗体并在登录成功后显示主窗体。请再次尝试运行修正后的代码并确认结果是否符合预期。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|