pyqt+sqlite程序发布后,提示“driver not loaded”

使用PyQt4写了一个小程序,其中用到了sqlite数据库,在我的调试环境中一切正常。当我使用cx_Freeze将其打包后,在运行相应的exe时,出现问题,老是提示"sqlite driver not loaded"的错误,看来是没有找到sqlite对应的驱动。于是百度+google了一番,发现有这样问题的人还不少,其出现这种错误的原因很简单,就是缺DLL库了。cx_Freeze已经将sqlite3.dll、qtsql4.dll拷贝到工作目录下,但是QT本身的数据库驱动qsqlite4.dll没有。于是我搜到了一个qsqlite4.dll文件,将其直接考到工作目录下,运行,仍然报错。于是在深入的研究了一下,发现所谓的数据库驱动,在qt里属于plugins,这些插件在打包发布的时候,必须放置在工作目录的特定文件夹下面,比如数据库驱动要放在"sqldrivers"目录下,并且要小写。如下表所示:

Base ClassDirectory NameKey Case Sensitivity
QAccessibleBridgePlugin accessiblebridge Case Sensitive
QAccessiblePlugin accessible Case Sensitive
QDecorationPlugin decorations Case Sensitive
QIconEnginePlugin iconengines Case Insensitive
QImageIOPlugin imageformats Case Sensitive
QInputContextPlugin inputmethods Case Sensitive
QKbdDriverPlugin kbddrivers Case Sensitive
QMouseDriverPlugin mousedrivers Case Sensitive
QPictureFormatPlugin pictureformats Case Sensitive
QScreenDriverPlugin gfxdrivers Case Sensitive
QScriptExtensionPlugin script Case Sensitive
QSqlDriverPlugin sqldrivers Case Sensitive
QStylePlugin styles Case Insensitive
QTextCodecPlugin codecs Case Sensitive

 

 

主要参考了:http://www.cuteqt.com/blog/?p=1002                     带着插件一起走

                  http://www.cuteqt.com/blog/?p=1059                     带着插件一起走续篇

                  http://doc.qt.nokia.com/4.3/plugins-howto.html      How to Create Qt Plugins

                  http://doc.qt.nokia.com/4.3/qt-conf.html                  Using qt.conf

 

PyQt5是一个Python编程语言的工具包,用于创建图形用户界面(GUI)。SQLite是一个轻量级的嵌入式数据库引擎,它可以轻松地集成到应用程序中。QTableWidget是PyQt5中一个用于显示和编辑二维表格数据的小部件。 在PyQt5中,使用QTableWidget来显示SQLite数据库中的数据,可以按照以下步骤进行操作: 1. 首先,导入需要的模块:`from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem` 并连接到SQLite数据库:`import sqlite3` 2. 创建一个继承自QMainWindow的自定义窗口类,并在窗口的初始化方法中设置布局等属性。 3. 创建一个QTableWidget实例,并设置它的行数和列数:`table = QTableWidget(row_count, col_count)` 4. 连接到SQLite数据库:`conn = sqlite3.connect('your_database.db')` 5. 创建一个游标对象:`cursor = conn.cursor()` 6. 执行SQL查询语句获取数据库中的数据:`cursor.execute('SELECT * FROM your_table')` 7. 使用fetchall()方法获取查询结果:`data = cursor.fetchall()` 8. 遍历查询结果,并将数据逐行添加到QTableWidget中:`for row_number, row_data in enumerate(data):` `for column_number, column_data in enumerate(row_data):` `table.setItem(row_number, column_number, QTableWidgetItem(str(column_data)))` 9. 最后,关闭数据库连接:`conn.close()` 10. 将QTableWidget添加到窗口的主布局中:`self.setCentralWidget(table)` 通过以上步骤,就可以使用PyQt5和SQLite数据库来显示自定义表格数据。在需要时,可以根据需求对QTableWidget进行自定义样式的设置,例如设置列宽、行高、表头等。 希望以上回答对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值