嘉兴网站广优化公司,dedecms视频网站模板,移动端app开发,网络管理服务器一#xff1a;背景
最近研究一个项目#xff0c;里面用的Pyqt5编写的桌面应用#xff0c;跑了下源码发现连接数据库那块出来问题#xff0c;最终调试发现里面用的QtSql去连接mysql提示驱动找不到。
具体报错信息如下#xff1a;
Could not parse stylesheet of object …一背景
最近研究一个项目里面用的Pyqt5编写的桌面应用跑了下源码发现连接数据库那块出来问题最终调试发现里面用的QtSql去连接mysql提示驱动找不到。
具体报错信息如下
Could not parse stylesheet of object QTableView(0x2075e3bee20)
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
Driver not loaded Driver not loaded
二原因分析
这里应该是缺少QMYSQL这个驱动网上找了很多资料说是QT5.15.*版本的包里面没有这个驱动需要自己下载源码包重新编译生成dll文件,最后尝试着下载了QT的整个源码包按照网上的方法尝试了最后还是提示这个驱动找不到。无奈只好寻求其他解决方案。
三解决方案
一使用通用的odbc驱动来连接MySQL我本地是windows环境需要下载mysql-connector-odbc,我是用的mysql8.0下载如下的驱动连接如下
https://cdn.mysql.com//Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.35-win32.msi
下载完就一步一步的安装成功即可。
二配置
安装后在管理工具选择odbc数据源
填写数据库账号密码数据库名称测试连接如下 这样就连接成功了
三QT代码连接
db QtSql.QSqlDatabase.addDatabase(QODBC)
db.setDatabaseName(mysql)
db.setHostName(localhost)
db.setUserName(root)
db.setPassword(root)
if not db.open(): # 判断数据库是否打开print(db.lastError().text()) # 打印操作数据库时出现的错误return False
else:print(连接成功) 运行代码发现连接成功了。是不是很简单所以条条道路通罗马技术上遇到问题可能一种方法长时间解决不了或者解决起来很复杂可以换一种思路也许很快就解决了。