Pyqt5+SQLite

通常在做业务逻辑时会遇到,如何在界面上对数据库信息进行操作的问题。

这里我们选用SQLite,它是一种嵌入式数据库,以单个独立的文件形式存储数据,适用于Pyqt5的开发。

下面做一个小案例,将数据库信息显示在界面中。

1.创建数据库

代码案例如下(创建一个用户信息表):

conn = sqlite3.connect('test.db')

cursor = conn.cursor()

cursor.execute('create table user (id varchar(20) primary key, name varchar(20), age varchar(20), gender varchar(20))')

cursor.execute('insert into user (id, name, age, gender) values (\'1\', \Tom\',\'25\', \'Female\')')

conn.commit()

cursor.close()

conn.close()

2.获取数据库信息

self.model = QStandardItemModel()

self.model.setHorizontalHeaderLabels(["Id", "Name", "Age", "Gender"])

conn = sqlite3.connect('test.db')

cursor = conn.cursor()

cursor.execute('select * from user')

values = cursor.fetchall()

for row in range(len(values)):

for col in range(len(values[row])):

item = QStandardItem(values[row][col])

self.model.setItem(row, col, item)

3.将数据库信息显示在界面上

在Qt Designer中选择Table View控件

将数据设置给QTableView

tableView.setModel(self.model)

4.结果显示

抱歉,提供完整的PyQt5 + SQLite图书管理系统代码超出了我的功能范围,因为这通常涉及到大量的代码和详细的项目结构。但我可以给你一些基本的概念和指导如何构建这样的系统: 1. **安装库**: 首先,你需要安装`PyQt5`用于图形用户界面(GUI),以及`pysqlite3`用于SQLite数据库操作。你可以通过pip安装: ``` pip install PyQt5 pysqlite3 ``` 2. **设计数据库模型**: 使用SQLite,创建一个名为`books.db`的数据库文件,其中可能有`books`表,包括字段如`id`, `title`, `author`, `description`, 等。 3. **创建UI**: 使用Qt Designer设计窗体,包含输入框、下拉框、按钮等元素,以便用户添加、编辑和搜索书籍信息。 4. **Python代码实现**: - 连接到SQLite数据库并处理SQL查询(例如CRUD操作)。 - 创建QWidgets控件的槽函数对应于UI中的事件,比如按钮点击事件,用来执行相应的数据库操作。 - 对象绑定:例如,一个QPushButton连接到一个处理添加书籍的函数。 这是一个简化的示例代码片段: ```python from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLineEdit, QVBoxLayout import sqlite3 class BookManager(QWidget): def __init__(self): super().__init__() # 初始化UI组件 self.title_input = QLineEdit() self.author_input = QLineEdit() add_button = QPushButton("添加书籍") # 添加按钮的信号与槽连接 add_button.clicked.connect(self.add_book) layout = QVBoxLayout() layout.addWidget(title_input) layout.addWidget(author_input) layout.addWidget(add_button) self.setLayout(layout) def add_book(self): title = self.title_input.text() author = self.author_input.text() # 这里使用SQLite连接和游标插入数据 conn = sqlite3.connect('books.db') cursor = conn.cursor() cursor.execute("INSERT INTO books (title, author) VALUES (?, ?)", (title, author)) conn.commit() conn.close() if __name__ == "__main__": app = QApplication([]) book_manager = BookManager() book_manager.show() app.exec_() ``` 这个例子是一个基础框架,实际应用还需要处理异常、清理资源,并可能需要更复杂的数据库操作,如分页、筛选等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值