用pyqt写一个登录界面,包含记住密码功能
时间: 2024-03-12 20:44:12 浏览: 25
好的,以下是一个使用 PyQt5 编写的登录界面示例,包括记住密码功能:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QCheckBox
class LoginWindow(QWidget):
def __init__(self):
super().__init__()
# 设置窗口标题、大小、位置
self.setWindowTitle('登录')
self.resize(300, 200)
self.move(400, 300)
# 创建标签、文本框、按钮、复选框
self.username_label = QLabel('用户名:', self)
self.username_label.move(50, 30)
self.username_edit = QLineEdit(self)
self.username_edit.move(110, 25)
self.password_label = QLabel('密 码:', self)
self.password_label.move(50, 70)
self.password_edit = QLineEdit(self)
self.password_edit.setEchoMode(QLineEdit.Password)
self.password_edit.move(110, 65)
self.remember_checkbox = QCheckBox('记住密码', self)
self.remember_checkbox.move(50, 110)
self.login_button = QPushButton('登录', self)
self.login_button.move(50, 150)
self.cancel_button = QPushButton('取消', self)
self.cancel_button.move(150, 150)
# 读取记住密码的配置文件
with open('config.txt', 'r') as f:
config = f.read().strip().split('\n')
username = config[0]
password = config[1]
remember = config[2] == 'True'
# 设置默认值
self.username_edit.setText(username)
self.password_edit.setText(password)
self.remember_checkbox.setChecked(remember)
# 绑定按钮事件
self.login_button.clicked.connect(self.login)
self.cancel_button.clicked.connect(self.close)
def login(self):
# 获取用户名、密码和记住密码状态
username = self.username_edit.text().strip()
password = self.password_edit.text().strip()
remember = self.remember_checkbox.isChecked()
# 如果勾选了记住密码,则保存到配置文件
if remember:
with open('config.txt', 'w') as f:
f.write(f'{username}\n{password}\n{remember}')
# TODO: 在这里编写登录逻辑,这里只是简单地关闭窗口
self.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
login_window = LoginWindow()
login_window.show()
sys.exit(app.exec_())
```
这个登录界面包含了一个用户名文本框、一个密码文本框、一个记住密码复选框、一个登录按钮和一个取消按钮。在窗口初始化时,程序会读取配置文件中的用户名、密码和记住密码状态,并设置到对应的控件中。在登录时,程序会获取当前的用户名、密码和记住密码状态,如果勾选了记住密码,则会将其保存到配置文件中。登录逻辑需要根据实际情况进行编写。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)