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数据库中。
首先,代码导入了必要的模块,包括 sys
、sqlite3
和 PyQt5.QtWidgets
。它还定义了一个名为 RegisterWidget
的继承自 QWidget
的类,用于创建注册界面。
在 RegisterWidget
的构造函数中,窗口的标题被设置为 "注册界面",大小被调整为 250x150 像素。然后,创建了用户名标签、用户名输入框、密码标签、密码输入框和注册按钮,并将它们添加到一个垂直布局中,并通过 setLayout()
方法设置为窗口的布局。
按钮点击事件 handle_register
被绑定到注册按钮上。在该方法中,获取用户输入的用户名和密码,并使用 SQLite 的 sqlite3
模块插入数据到名为 "users.db" 的数据库中的 "users" 表中。然后,关闭数据库连接,并显示一个提示框,指示注册成功。
在 main
函数中,创建了一个应用程序对象 app
,并创建了一个名为 "users.db" 的数据库文件。如果该数据库文件不存在,将创建一个名为 "users" 的表格。然后,创建 RegisterWidget
对象,并显示它。
最后,通过调用 app.exec_()
进入应用程序的事件循环,直到应用程序退出。
这段代码演示了如何使用PyQt5创建一个简单的注册界面,并将用户输入的数据保存到数据库中。需要注意的是,如果要运行此代码,应确保已安装所需的依赖项(如 PyQt5 和 SQLite)。