用 Python 和 Qt Designer 显示数据库数据的完整指南
作为一名初入行的开发者,学会如何将图形化界面与数据库的连接是十分重要的技能。本文将通过一个简单的示例来指导你如何使用 Python 和 Qt Designer 来显示数据库中的数据。我们将一步步地梳理整个过程,并在每一步中明确使用的代码及其功能。
整体流程
下面的表格展示了实现“用 Python Qt Designer 显示数据库数据”的主要步骤:
步骤 | 描述 |
---|---|
1 | 创建数据库并插入数据 |
2 | 使用 Qt Designer 设计用户界面 |
3 | 使用PyQt5 加载设计的界面 |
4 | 连接到数据库 |
5 | 查询数据库数据并显示在界面上 |
6 | 完成并运行程序 |
步骤详解
1. 创建数据库并插入数据
首先,我们需要一个数据库来存储数据。可以使用 SQLite,这是一个轻量级的数据库,非常适合小型项目。
import sqlite3
# 连接到 SQLite 数据库 (如果文件不存在,会自动创建)
conn = sqlite3.connect('example.db')
# 创建一个游标对象,用于执行 SQL 命令
cursor = conn.cursor()
# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cursor.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")
cursor.execute("INSERT INTO users (name, age) VALUES ('Charlie', 35)")
# 提交更改并关闭连接
conn.commit()
conn.close()
2. 使用 Qt Designer 设计用户界面
在 Qt Designer 中,我们可以创建一个简单的界面,包括一个表格用来显示数据。将其保存为 user_interface.ui
。
- 在 Qt Designer 中,添加一个
QTableWidget
。 - 保存界面文件。
3. 使用 PyQt5 加载设计的界面
接下来,我们需要使用 PyQt5
来加载这个用户界面。
首先,确保你已经安装了 PyQt5:pip install PyQt5
然后创建一个 Python 文件(如 app.py
)并写入以下代码:
import sys
from PyQt5 import QtWidgets, uic
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
uic.loadUi('user_interface.ui', self) # 加载 UI 文件
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
4. 连接到数据库
为了从数据库中获取数据,我们需要在应用程序中添加数据库连接的代码。
import sqlite3
def get_data():
conn = sqlite3.connect('example.db') # 连接到数据库
cursor = conn.cursor()
cursor.execute("SELECT * FROM users") # 查询所有用户
data = cursor.fetchall() # 获取所有数据
conn.close()
return data # 返回数据
5. 查询数据库数据并显示在界面上
我们需要将查询的数据填充到 QTableWidget
中。我们将在 MainWindow
类中添加一个方法来完成这个任务。
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
uic.loadUi('user_interface.ui', self)
self.load_data() # 加载数据
def load_data(self):
data = get_data() # 调用获取数据的函数
self.tableWidget.setRowCount(len(data)) # 设置表格的行数
# 将数据填入表格
for row_number, row_data in enumerate(data):
for column_number, cell_data in enumerate(row_data):
self.tableWidget.setItem(row_number, column_number, QtWidgets.QTableWidgetItem(str(cell_data)))
6. 完成并运行程序
现在,你可以通过运行 app.py
来查看你的程序,确保它能够成功连接数据库并显示用户信息了。
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
数据饼状图和关系图
为了增加一些可视化的信息,我们可以用 mermaid
语法来表示数据关系和图形。
数据饼状图示例
pie
title 数据分布
"Alice": 30
"Bob": 25
"Charlie": 35
关系图示例
erDiagram
USERS {
INTEGER id PK
STRING name
INTEGER age
}
结论
至此,我们已经完成了从创建一个 SQLite 数据库,到使用 Qt Designer 设计界面,最后用 PyQt5 实现数据展示的全部过程。这个项目不仅能够帮助你了解如何处理数据库,还能让你熟悉图形化界面的开发。
继续探索和实践,这将进一步提升你在 Python 和 Qt 开发方面的能力。你可以尝试添加更多的功能,比如更新和删除记录,或者引入其他类型的数据库。扩展你的知识,将有助于你在开发领域的成长!