写一段pyqt5动态加载的ui登陆界面登陆密码和账号验证需连接由mysql创建的数据库
时间: 2023-12-13 10:05:19 浏览: 85
登录界面代码(连接MySql数据库进行用户名和密码验证_Qt5.9Creator)
5星 · 资源好评率100%
下面是一个简单的PyQt5动态加载UI登陆界面的例子,其中包括MySQL数据库的账号密码验证:
```python
import sys
from PyQt5.QtWidgets import *
from PyQt5.uic import loadUi
import mysql.connector
class LoginWindow(QMainWindow):
def __init__(self):
super().__init__()
loadUi('login.ui', self) # 动态加载UI文件
self.login_button.clicked.connect(self.login)
def login(self):
# 获取用户输入的账号和密码
username = self.username_input.text()
password = self.password_input.text()
# 连接MySQL数据库
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase"
)
# 查询数据库中是否存在该用户
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM users WHERE username=%s AND password=%s", (username, password))
result = mycursor.fetchone()
# 如果存在该用户,则登录成功
if result:
QMessageBox.information(self, "Success", "Login successful!")
else:
QMessageBox.warning(self, "Error", "Invalid username or password!")
if __name__ == '__main__':
app = QApplication(sys.argv)
window = LoginWindow()
window.show()
sys.exit(app.exec_())
```
在这个例子中,我们首先从PyQt5中导入必要的模块,包括QMainWindow和loadUi。然后,我们创建了一个名为LoginWindow的类,该类继承自QMainWindow类,并在构造函数中调用loadUi方法动态加载login.ui文件,该文件包含了登陆界面的设计。
接下来,我们连接了登陆按钮的clicked信号到login方法。在login方法中,我们首先获取用户输入的账号和密码,然后使用mysql.connector模块连接到MySQL数据库。我们查询数据库中是否存在与输入的账号和密码对应的用户,如果查询结果不为空,则显示成功消息框,否则显示错误消息框。
最后,我们在if __name__ == '__main__':中创建了一个QApplication对象和LoginWindow对象,并显示窗口。当应用程序退出时,我们调用sys.exit方法。
阅读全文