首先
首先在这里记录一下自己学习的内容,之前接触过pyqt ,最近又接触了数据库,所以就结合了一下写了一个简单的注册界面以及将数据写入数据库。
在这里使用的是sqlite轻量级数据库
基本思想就是创建好界面,点击注册按钮跳转到注册界面,注册成功后跳转到登陆界面,写的很简单,大家可以看看思路
首先写登录界面,两个按钮和两个文本输入框:
class RegisterUser(QMainWindow):
def __init__(self):
super(RegisterUser, self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("登陆注册")
self.resize(400,200)
self.user_label = QLabel("用户名", self)
self.user_label.move(50, 50)
self.user_line = QLineEdit(self)
self.user_line.move(100, 50)
self.user_line.resize(150, 30)
self.password_label = QLabel("密 码", self)
self.password_label.move(50, 100)
self.password_line = QLineEdit(self)
self.password_line.move(100, 100)
self.password_line.resize(150, 30)
self.password_line.setEchoMode(QLineEdit.Password)
self.denglu_button=QPushButton("登陆",self)
self.denglu_button.move(100,150)
self.denglu_button.resize(50,30)
self.denglu_button.clicked.connect(self.denglu)
self.register_button = QPushButton("注册", self)
self.register_button.move(50, 150)
self.register_button.resize(50,30)
self.register_button.clicked.connect(self.register1)
效果图:
跳转我这里写了简单的操作,就是判断按钮的文本内容,将登陆界面设置为main ,注册界面设置为main1,:写成槽函数:
def register1(self):
a=self.register_button
if a.text()=="注册":
main.close()
main1.show()
点击注册按钮后,跳转到注册界面,注册界面我偷了个懒把登陆界面改了尺寸又搬上去了:
def initUI(self):
self.setWindowTitle("注册界面")
self.resize(300, 200)
self.user_label = QLabel("用户名", self)
self.user_label.move(50, 50)
self.user_line = QLineEdit(self)
self.user_line.move(100, 50)
self.user_line.resize(150, 30)
self.password_label = QLabel("密 码", self)
self.password_label.move(50, 100)
self.password_line = QLineEdit(self)
self.password_line.move(100, 100)
self.password_line.resize(150, 30)
self.turn_button = QPushButton("返回", self)
self.turn_button.move(100, 150)
self.turn_button.resize(50, 30)
self.turn_button.clicked.connect(self.turn)
self.register_button = QPushButton("注册", self)
self.register_button.move(50, 150)
self.register_button.resize(50, 30)
self.register_button.clicked.connect(self.register1)
效果图:
返回那个按钮可以忽略掉,是我之前写的一个点击之后返回登陆界面
接下来是注册界面注册将数据写入数据库,我首先应用DB Browser(sqlite)这个工具在本地建立一个数据库,这个工具网上可以下载直接用。
建立数据库:
这个数据库里面的密码可以进行加密处理,这个还没有学,只是了解过。
将注册的数据写入到数据库
这个我就是写的数据库的sql语句的方法写进数据库
首先连接本地的数据库;
db_file = "./db/users.db"
conn = sqlite3.connect(db_file)
cur = conn.cursor()
然后剩下的写进槽函数:
def register(self):
sql = "insert into user('username','password') values(?,?)"
data = (self.user_line.text(), self.password_line.text())
print(data)
if data==('',''):
QMessageBox.information(self, 'Warning!', '注册信息不能为空'.format(self.user_line.text()),
QMessageBox.Yes)
else:
cur.execute(sql, data)
conn.commit()
cur.close()
conn.close()
QMessageBox.information(self, 'Successfully', '注册成功'.format(self.user_line.text()),
QMessageBox.Yes)
main1.close()
main.show()
判断一下是否输入的为空,不为空执行注册操作,成功后弹出信息框
后面的就是注册成功后main和main1就是跳转到登陆界面;
接下来学习如何从数据库中查找数据和输入的数据做对比然后成功登陆