业务要求:
1、用pyqt5实现一个登录界面,并使用信号与槽实现注册,链接操作数据库。
import sys
import sqlite3
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, QMessageBox
class RegisterWidget(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("注册界面")
self.resize(250, 150)
# 创建用户名标签和输入框
self.username_label = QLabel("用户名:")
self.username_edit = QLineEdit()
# 创建密码标签和输入框
self.password_label = QLabel("密码:")
self.password_edit = QLineEdit()
self.password_edit.setEchoMode(QLineEdit.Password)
# 创建注册按钮
self.register_button = QPushButton("注册")
# 布局管理
layout = QVBoxLayout()
layout.addWidget(self.username_label)
layout.addWidget(self.username_edit)
layout.addWidget(self.password_label)
layout.addWidget(self.password_edit)
layout.addWidget(self.register_button)
self.setLayout(layout)
# 绑定按钮点击事件
self.register_button.clicked.connect(self.handle_register)
def handle_register(self):
# 获取输入的用户名和密码
username = self.username_edit.text()
password = self.password_edit.text()
# 插入数据到数据库
conn = sqlite3.connect("users.db")
cursor = conn.cursor()
cursor.execute("INSERT INTO users (username, password) VALUES (?, ?)", (username, password))
conn.commit()
conn.close()
# 显示注册成功的提示框
QMessageBox.information(self, "注册成功", "注册成功!")
print("注册成功!")
if __name__ == "__main__":
app = QApplication(sys.argv)
# 创建表格(如果不存在)
conn = sqlite3.connect("users.db")
cursor = conn.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS users (username TEXT, password TEXT)")
conn.close()
register_widget = RegisterWidget()
register_widget.show()
sys.exit(app.exec_())
这段代码是一个使用 PyQt5 创建的简单注册界面,用户可以输入用户名和密码进行注册,注册的数据将被插入到 SQLite 数据库中。
代码中的 handle_register
方法处理注册按钮的点击事件。在方法中,首先获取用户输入的用户名和密码,然后连接到 SQLite 数据库(如果不存在则创建),插入用户数据并提交事务。最后,显示一个注册成功的提示框,并输出"注册成功!"。