非常抱歉给您带来困扰。可能是由于代码长度限制的问题,导致我的回复被截断了。我会将完整的代码分批发送给您,请耐心等待。
首先是引入所需的模块和类:import sys
from PySide6.QtCore import Qt, QTimer
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QProgressBar, QLineEdit, QMessageBox
接下来定义三个窗口类:WelcomeWindow、LoginWindow和MainWindow。class WelcomeWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Welcome Window')
self.resize(1440, 900)
layout = QVBoxLayout()
label = QLabel('Welcome!')
layout.addWidget(label)
self.progress_bar = QProgressBar()
layout.addWidget(self.progress_bar)
self.progress_bar.setValue(0)
self.setLayout(layout)
self.timer = QTimer()
self.timer.timeout.connect(self.update_progress_bar)
self.timer.start(100)
def update_progress_bar(self):
value = self.progress_bar.value()
if value >= 100:
self.timer.stop()
self.close()
login_window = LoginWindow()
login_window.show()
else:
value += 10
self.progress_bar.setValue(value)
class LoginWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Login Window')
self.resize(1440, 900)
layout = QVBoxLayout()
self.username_input = QLineEdit()
layout.addWidget(self.username_input)
self.password_input = QLineEdit()
self.password_input.setEchoMode(QLineEdit.Password)
layout.addWidget(self.password_input)
self.login_attempts = 0
self.setLayout(layout)
def closeEvent(self, event):
if self.login_attempts < 3:
event.ignore()
self.login_attempts += 1
else:
event.accept()
self.close()
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Main Window')
self.resize(1440, 900)
layout = QVBoxLayout()
buttons = []
for i in range(12):
button = QPushButton(f'Button {i+1}')
buttons.append(button)
layout.addWidget(button)
self.setLayout(layout)
最后,创建应用程序并显示初始窗口:if __name__ == '__main__':
app = QApplication(sys.argv)
welcome_window = WelcomeWindow()
welcome_window.show()
sys.exit(app.exec())
请尝试运行上述完整代码,应该就能够显示登录窗体了。如果仍然有问题,请您提供更多详细的信息,以便我进一步帮助您。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |