PyQt5获取MySQL数据库数据可视化
时间: 2024-04-30 20:23:17 浏览: 122
PyQt5 是一个流行的 Python 框架,可以用于创建图形用户界面。同时,MySQL 是一个流行的关系型数据库。将这两个技术结合起来,可以创建一个可视化的 MySQL 数据库管理工具。
以下是一个示例代码,演示如何使用 PyQt5 和 MySQL 连接,并在 GUI 中显示数据库中的数据。
```python
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
import sys
class DatabaseWidget(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("MySQL 数据库")
self.setGeometry(100, 100, 500, 500)
# 创建布局
layout = QVBoxLayout()
# 创建表格控件
self.table = QTableWidget()
layout.addWidget(self.table)
# 连接数据库
self.db = QSqlDatabase.addDatabase('QMYSQL')
self.db.setHostName('localhost')
self.db.setDatabaseName('mydatabase')
self.db.setUserName('root')
self.db.setPassword('password')
self.db.open()
# 查询数据
query = QSqlQuery()
query.exec_("SELECT * FROM mytable")
# 设置表格行和列数
self.table.setRowCount(query.size())
self.table.setColumnCount(query.record().count())
# 填充表格数据
row = 0
while query.next():
for column in range(self.table.columnCount()):
item = QTableWidgetItem(str(query.value(column)))
self.table.setItem(row, column, item)
row += 1
# 设置表头
self.table.setHorizontalHeaderLabels([query.record().fieldName(column) for column in range(self.table.columnCount())])
# 设置布局
self.setLayout(layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = DatabaseWidget()
widget.show()
sys.exit(app.exec_())
```
在上面的代码中,我们创建了一个名为 `DatabaseWidget` 的类,它继承自 `QWidget`,并包含一个表格控件 `QTableWidget`。在 `__init__` 方法中,我们连接到 MySQL 数据库,并执行了一个 SQL 查询来获取数据。然后,我们设置了表格的行和列数,并使用 `QTableWidgetItem` 填充了表格的数据。最后,我们设置了表头,并将表格添加到布局中。
我们可以运行这个程序来查看结果。在运行之前,需要确保已经安装了 `PyQt5` 和 `PyMySQL` 库,并且已经创建了一个名为 `mydatabase` 的 MySQL 数据库,其中包含一个名为 `mytable` 的表。在运行程序之前,需要将代码中的 `password` 替换为你的 MySQL 密码。
阅读全文