python pyqt6关闭登录窗口打开主窗口
时间: 2023-09-01 11:10:18 浏览: 44
可以尝试以下代码实现:
```python
from PyQt6.QtWidgets import QApplication, QMainWindow, QDialog, QPushButton
class LoginWindow(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("Login")
self.resize(300, 100)
self.login_button = QPushButton("Login", self)
self.login_button.clicked.connect(self.login)
def login(self):
# 进行登录验证,此处省略
self.accept() # 验证通过后关闭登录窗口
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("Main")
self.resize(500, 300)
if __name__ == "__main__":
app = QApplication([])
login_window = LoginWindow()
if login_window.exec() == QDialog.Accepted:
# 登录成功,打开主窗口
main_window = MainWindow()
main_window.show()
app.exit(app.exec())
```
在代码中,首先定义了一个 `LoginWindow` 类和一个 `MainWindow` 类,分别表示登录窗口和主窗口。在 `LoginWindow` 类中,创建了一个按钮用于执行登录操作,点击后进行登录验证。如果验证通过,调用 `accept()` 方法关闭登录窗口;否则,保持登录窗口不关闭。
在 `__main__` 函数中,先创建一个 `QApplication` 实例,然后创建一个 `LoginWindow` 实例,并调用 `exec()` 方法显示登录窗口。如果用户点击了登录按钮并且验证通过,就创建一个 `MainWindow` 实例并显示。最后,调用 `app.exit(app.exec())` 保证程序正常退出。