写一个pyqt登录界面,要连接数据库
时间: 2023-10-25 08:18:23 浏览: 37
下面是一个简单的PyQt5登录界面,连接MySQL数据库的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QLineEdit, QPushButton
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
class LoginWindow(QMainWindow):
def __init__(self):
super().__init__()
# 设置窗口标题和大小
self.setWindowTitle('登录')
self.setGeometry(300, 300, 300, 200)
# 创建标签和文本框控件
self.label_username = QLabel('用户名:', self)
self.label_username.move(50, 50)
self.text_username = QLineEdit(self)
self.text_username.move(110, 50)
self.text_username.setPlaceholderText('请输入用户名')
self.label_password = QLabel('密码:', self)
self.label_password.move(50, 80)
self.text_password = QLineEdit(self)
self.text_password.move(110, 80)
self.text_password.setPlaceholderText('请输入密码')
self.text_password.setEchoMode(QLineEdit.Password)
# 创建登录按钮
self.btn_login = QPushButton('登录', self)
self.btn_login.move(110, 120)
self.btn_login.clicked.connect(self.login)
# 初始化数据库连接
self.db = QSqlDatabase.addDatabase('QMYSQL')
self.db.setHostName('localhost')
self.db.setDatabaseName('testdb')
self.db.setUserName('root')
self.db.setPassword('password')
if not self.db.open():
print('无法连接数据库')
sys.exit(1)
def login(self):
# 获取用户名和密码
username = self.text_username.text()
password = self.text_password.text()
# 执行数据库查询
query = QSqlQuery()
query.prepare("SELECT * FROM users WHERE username = ? AND password = ?")
query.addBindValue(username)
query.addBindValue(password)
if not query.exec():
print('查询失败')
sys.exit(1)
# 判断查询结果是否为空
if not query.next():
print('用户名或密码错误')
else:
print('登录成功')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = LoginWindow()
window.show()
sys.exit(app.exec_())
```
上面的代码使用PyQt5创建了一个简单的登录界面,包含用户名和密码文本框和一个登录按钮。当用户点击登录按钮时,程序会从文本框中获取用户名和密码,然后连接MySQL数据库并执行查询。如果查询结果不为空,则登录成功,否则提示用户名或密码错误。请注意,这只是一个示例代码,您需要根据自己的需求进行修改。