pyqt tableview mysql_Qt实用技巧:使用QTableView、QSqlTableMode与QSqlDatabase对数据库数据进行操作...

Qt实用技巧:使用QTableView、QSqlTableMode与QSqlDatabase对数据库数据进行操作

需求

编写应用软件的过程中,需要对保存的数据进行动态的设置,当程序运行的时查询数据库获取相关配置项进行设置。

原理

使用时,将QSqlTableModel与QSqlDatabase绑定即model与sql绑定,然后将model与QTableView绑定,实现修改QTableView时,自动更新对数据库的操作,基本的数据库操作语句都省了。

Demo

Demo包含

1ec15a1b5d2ab756411ba62d40d1d26e.png

Demo截图

9495460df26a4473c95dd053dd03f345.png

关键代码

对于数据库的操作:打开数据库

_db = QSqlDatabase::addDatabase("QSQLITE");

_db.setDatabaseName("demo.db");

// 数据库文件是否在应用程序目录下,因为在编码时,应用程序默认路径在.pro文件夹下,但是实际exe路径在的其debug或者release文件夹下

// 补充:不论linux还是windows,统一使用单斜杠作为分隔,在linux和windows下都能识别,能更好的跨平台

#if 0

// 发布时

QString path = qApp->applicationDirPath()+"/"+"demo.db";

#else

// 编译时

QString path = qApp->applicationDirPath()+"/../"+"demo.db";

#endif

if(QFile::exists(path))

{

// 存在则打开

_db.open();

}else{

// 不存在打开并创建数据库表 补充:SQLite是基于文件的数据库,当打开时如果数据库文件不存在将自动创建一个

_db.open();

QSq

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要导入 `sqlite3` 和 `PyQt5` 的相关模块。然后你需要在你的程序中打开数据库连接,并执行 SQL 查询语句以获取数据。最后,将查询结果显示在 `QTableWidget` 上。 以下是一个示例程序来实现查询并显示 SQLite 数据库数据的功能: ```python import sys import sqlite3 from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidgetItem, QTableWidget class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.tableWidget = QTableWidget() self.setCentralWidget(self.tableWidget) self.setWindowTitle('SQLite Query') self.setGeometry(100, 100, 500, 500) def query(self, keyword): conn = sqlite3.connect('mydatabase.db') c = conn.cursor() # 执行 SQL 查询语句 c.execute("SELECT * FROM mytable WHERE field LIKE ?", ('%'+keyword+'%',)) data = c.fetchall() # 将查询结果显示在 QTableWidget 上 self.tableWidget.setRowCount(len(data)) self.tableWidget.setColumnCount(len(data[0])) for row_num, row_data in enumerate(data): for col_num, col_data in enumerate(row_data): self.tableWidget.setItem(row_num, col_num, QTableWidgetItem(str(col_data))) conn.close() if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() window.query('keyword') sys.exit(app.exec_()) ``` 在上面的代码中,我们创建了一个 `MainWindow` 类,并在其中添加了一个 `QTableWidget`,并在 `query` 方法中实现了查询和显示数据的逻辑。在 `query` 方法中,我们首先建立了数据库连接,然后执行 SQL 查询语句以获取数据。最后,我们将查询结果显示在 `QTableWidget` 上。 你需要将代码中的 `mydatabase.db` 和 `mytable` 替换为你自己的数据库名称和表名,并将 `field` 替换为你要查询的字段名称。你还需要将 `keyword` 替换为你要查找的关键字。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值