Qt | 在qcustomplot自定义图例项显示方式,实现复选框图例控制曲线可见性
问题
在使用Qt连接数据库时,出现Driver not loaded报错(这里以Mariadb数据库为例Mysql同理)
指定QMYSQL情况下报错
指定QMARIADB驱动情况下报错
出现原因分析
由于Qt Sql模块使用的是驱动程序插件与不同的数据库API进行通信,当缺少当前连接的数据库驱动插件时,就会报错"Driver not loaded"
在我们进行数据库连接时,会调用QSqlDatabase的addDataBase制定连接数据库的驱动
在Qt中制定数据库驱动后,Qt会动态加载数据库驱动插件,首先是查找安装目录下的plugins\sqldrivers文件夹,我使用的是minGw32编译器,所以实际查找的目录应该是
D:\Qt\5.15.2\mingw81_32\plugins\sqldrivers
Qt查找对应文件夹中是否存在指定的驱动,一般驱动插件的存储类型也是存在一定区别:
我使用的Qt版本为Qt5.15.2,这里以QSQLITE驱动为例(因为这个sqllite数据库驱动一般会包含在库目录中,不用再手动编译),首先介绍一下不同引用库对应的驱动文件格式:
● minGw:
○ qsqllite.dll ---发布版本(Realse)的数据库驱动
○ qsqllite.dll.debug ---调试版本(Debug)的数据库驱动
● msvc:
○ qsqllite.dll ---发布版本(Realse)的数据库驱动
○ qsqllited.dll ---调试版本(Debug)的数据库驱动
这里就需要注意自己使用的编译器/引用库是哪一个,对应的编译器生成的文件格式参考上面的内容。
使用minGw64一般引用库在Qt安装目录下的C:\Qt[Qt版本]\mingw81_64\lib,编译器在C:\Qt\Tools\mingw810_64目录下
使用msvc64一般引用库在Qt安装目录下的C:\Qt[Qt版本]\msvc2019_64\lib,编译器通常安装在 Visual Studio 的目录下
解决方案
驱动编译
这里以编译Mariadb数据库驱动为例。
首先找到Qt的数据库插件编译源代码目录,我的目录为:
D:\software\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers
接下来需要明确自己的目前使用的引用库及编译器,以及需要编译的数据库驱动,因为我们需要编译的是Mysql/Mariadb数据库,所以选择D:\software\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql目录下的pro文件,并用QtCreator打开,配置项目时,选择自己项目相同的编译器,我这里选择minGw64编译器配置项目
然后修改mysql.pro文件如下图
添加的头文件搜索路径和库文件路径:
头文件路径
INCLUDEPATH += "C:/Program Files/MariaDB 10.11/include/mysql/"
库文件路径
LIBS += -L"C:/Program Files/MariaDB 10.11/lib" -lmariadb
在release下进行构建,将会在构建目录下生成三个文件(构建目录是D:\software\Qt\5.15.2\mingw81_64\qtbase\src\plugins\sqldrivers\mysql):
然后将这 三个文件拷贝至D:\software\Qt\5.15.2\mingw81_64\qtbase\src\plugins\sqldrivers\plugins\sqldrivers(对应自己使用的编译器进行选择)
接下来再进行测试连接,即可连接成功。
编译数据库驱动后,使用windeployqt打包发布版本并在安装了MariaDb/Mysql环境下仍然报错“Driver not Load"解决方法
方法1:mariaDb/Mysql安装目录下的lib目录的环境变量
方法2:每次打包程序时手动复制动态库文件libmysql.dll到exe程序同级目录中(动态库在mariaDb/Mysql安装目录下的lib目录下)
Qt | 在qcustomplot自定义图例项显示方式,实现复选框图例控制曲线可见性的更多相关文章
- 自定义实现 PyQt5 下拉复选框 ComboCheckBox
一.前言 由于最近的项目需要具有复选功能,但过多的复选框会影响界面布局和美观,因而想到把 PyQt5 的下拉列表和复选框结合起来,但在 PyQt5 中并没有这样的组件供我们使用,所以想要自己实现一个下 ...
- PyQt(Python+Qt)学习随笔:QTreeWidgetItem项中列的复选状态访问方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget中的QTreeWidgetItem项,项中每列数据都可以单独设置复选状 ...
- (原创)【B4A】一步一步入门09:xCustomListView,加强版列表、双行带图片、复选框按钮等自定义列表项(控件篇05)
一.前言 上篇((原创)[B4A]一步一步入门08:ListView,列表.单行.双行.双行带图片.列表项样式(控件篇04))我们讲了ListView,目前官方已经不推荐再使用ListView了,而是 ...
- Qt之QTableView添加复选框(QAbstractItemDelegate)
简述 上节分享了使用自定义模型QAbstractTableModel来实现复选框.下面我们来介绍另外一种方式: 自定义委托-QAbstractItemDelegate. 简述 效果 QAbstract ...
- 组合框里添加复选框的方法(使用勾选的假象,用图片代替而已,并非QT原生支持)
组合框可以看作是列表框和文本框的组合,因其占据的空间少,使用操作方便,常被界面设计人员用于界面开发设计中,在有限个输入的条件下,组合框常用来代替文本框,这样从用户使用角度来看,更趋人性化,所见即所得. ...
- 关于QT Graphics View开启OpenGL渲染后复选框、微调框等无法正常显示的问题
之前学习QT Graphics View框架,除了基本的图元外,还可以通过QGraphicsProxyWidget类添加QT的基本Widget(如按钮.复选框.单选框等),常使用的场景类接口如下: Q ...
- WPF界面设计技巧(5)—自定义列表项呈现内容
原文:WPF界面设计技巧(5)-自定义列表项呈现内容 接续上次的程序,稍微改动一下原有样式,并添加一个数据模板,我们就可以达成下面这样的显示功能: 鼠标悬停于文件列表项上,会在工具提示中显示图像缩略图 ...
- 每日学习心得:SharePoint 2013 自定义列表项添加Callout菜单项、文档关注、SharePoint服务端对象模型查询
前言: 前一段时间一直都比较忙,没有什么时间进行总结,刚好节前项目上线,同时趁着放假可以好好的对之前遇到的一些问题进行总结.主要内容有使用SharePoint服务端对象模型进行查询.为SharePoi ...
- Qt之QHeaderView自定义排序(获取正确的QModelIndex)
简述 前几节中分享过关于自定义排序的功能,貌似我们之前的内容已经可以很好地解决排序问题了,但是,会由此引发一些很难发现的问题...比如:获取QModelIndex索引错误. 下面,我们先来实现一个整行 ...
- Qt:使用自定义的字体
Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体 QFontDatabase::addApplicationFont("XENOTRON.TTF" ...
随机推荐
- WPF 窗口 触摸失效 的一种场景
最近,生产线反馈,在执行生产大屏测试软件的时候,软件大概率出现不能触摸,但是可以用鼠标的的情况.刚好 这个软件又是WPF 做的,所以做了以下排查. .Net 环境: .NetFrameWork 4.8 ...
- 通用jar包部署脚本
在<Linux下部署Spring Boot 项目 jar包>中,小编介绍了一步一步发布jar包的方法,这里提供一个通用Shell脚本,傻瓜式发布Spring Boot项目. 通过W ...
- Spring 注解之@RequestBody和@PostMapping
@RequestBody的使用 注解@RequestBody用于接收前端传递给后端的.JSON对象的字符串,这些数据位于请求体中,适合处理的数据为非Content-Type: applicatio ...
- Vue前端开发 转 React 指南
JSX 先介绍 React 唯一的一个语法糖:JSX. 理解 JSX 语法并不困难,简单记住一句话,遇到 {} 符号内部解析为 JS 代码,遇到成对的 <> 符号内部解析为 HTML 代码 ...
- 安卓手机上部署nodejs服务器
一.准备软件 Termux 下载地址: 链接:https://pan.baidu.com/s/1J3OQITWc34uT-Mc8B-moPA?pwd=ug9j 提取码:ug9j KSW ...
- php xdebug 调试
xdebug 调试 https://www.bilibili.com/video/BV1Qx411f7pF?t=1
- 小车PID巡线调节
PID巡线调节 1.双巡线P控制 KP可以先从0.2值调起,P比例主要控制小车能够在线上正常巡线, P比例说明:KP值越小,转弯幅度越大,会直接越过黑线.KP值越大,转弯幅度越小,能正常巡线,但是摆动 ...
- Java变量类型识别
方法: 1.反射方式,成员变量的类型判断2.isInstance用法3.利用泛型识别类型一.新建测试类 import java.util.Date; import com.cxyapi.generic ...
- 什么是CAE软件?哪个CAE软件好用?
CAE,全称Computer Aided Engineering,是指在工程领域结合计算机技术进行工程设计.分析.优化以及模拟仿真的应用.随着科技的发展,CAE技术在航空.汽车.电子.机械等领域越来越 ...
- MybatisPlus - CodeGenerator
保存一下之前做系统的时候用到的生成器 先是导包 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; import ...