qt的安装及连接sql使用注意
qt安装与使用
今天写下qt使用的注意事项,qt-project.org上已经更新了qt5的相关库,但是建议不是很熟系qt的朋友,或者说想使用传统qt api而不是qml的朋友,
继续下载老版本4.8.4。因为有很多参考例子与书籍。
其实只是做一个简单的sql文件导入作用,本来不想做的很粗糙,但是领导给的时间少,胡乱摸了几把,勉强做了一个简单的界面。主要构思与总结将在
工作完成后补上。
现在说说做的时候遇到的问题:
1.C++封装问题
之前一直用C,也大概了解C++,我在qt中都是纯代码实现(因为比较喜欢敲键盘的感觉),但是qt中最重要的就是c++的关系,表现为写了很多控件,运行时不报错,但是没显示出来,我想了想,实际上我也是在主窗口的构造函数中创建的,但是没有指定他们的父窗口是谁,所以造成上述错误。这里的注意就是:可以把界面话的qt想成一个大型继承链条(因为他们都继承于QObject),一旦其中一个控件没有控制在这个链条内,那么就会出问题。
2.sql头文件加载问题
明明是原原本本的参考各种例子写的代码,一直就是报找不到符号的错误,原来是需要改pro文件
QT += core gui sql//这里添加sql
3.mysql.h头文件路径问题
由于我的mysql是我从源码编译来的,所以他并没有在标准路径下,qt找不到mysql.h
额外需要连接的连接库
unix:LIBS += -L your_lib_path -lyour_lib
win32:LIBS += your_lib_path/your_lib
额外需要的头文件目录
INCLUDEPATH += your_include_path
4.mysql驱动加载问题
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE
*************************解决方法1***********************************
解决方法1,先看下是否已经安装了libqsqlmysql.so
[test1@localhost ~]$ locate libqsqlmysql.so
/var/cache/abrt-di/usr/lib/debug/usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so.debug
我的系统上还没有安装,下面安装 qt-mysql.i686。
[root@localhost test1]# yum install qt-mysql.i686
类似的 我的系统中就这样找 sudo apt-cache search qt | grep mysql
libqt4-sql-mysql - Qt 4 MySQL database driver
$ locate libqsqlmysql.so
/usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so
/var/cache/abrt-di/usr/lib/debug/usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so.debug
在程序里面调用
qDebug()<<QCoreApplication::libraryPaths ();
可以看到Qt 搜索库的路径。里面并没有/usr/lib/qt4/plugins/
这里有两种方式解决这个问题:
1、把libqsqlmysql.so所在的路径增加到库路径里面:
QcoreApplication::addLibraryPath("/usr/lib/qt4/plugins/");
2、直接复制libqsqlmysql.so到Qt的搜索路径中。
[test1@localhost ~]$ cp /usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so QtSDK/Desktop/Qt/4.8.1/gcc/plugins/sqldrivers/
*************************解决方法1***********************************
以上方法有时候不太管用,主要原因猜测是版本不对
*************************解决方法2***********************************
first we should remember some paths.
qt source code path:~/Download/qt-everywhere-opensource-src-4.8.4
qmake path:/opt/qt4/bin (in fact, it is already in system path environment)
mysql include path:/usr/include/mysql (it must contain mysql.h)
mysql lib path:
$ ll libmysqlclient_r.so
lrwxrwxrwx 1 root root 17 May 23 03:58 libmysqlclient_r.so -> libmysqlclient.so
$ pwd
/usr/lib/i386-linux-gnu
CANNOT find it? anyway, follow me!
$cd /usr/
$find -name "*mysqlclient_r*"
./lib/i386-linux-gnu/libmysqlclient_r.a
./lib/i386-linux-gnu/libmysqlclient_r.so
./lib/i386-linux-gnu/libmysqlclient_r.so.18.0.0
./lib/i386-linux-gnu/libmysqlclient_r.so.18
got it!
ok it's time to compile mysql driver for qt now!
$cd $(QTPATH)//src/plugins/sqldrivers/mysql/
$sudo $(QMAKEPATH)/qmake -o Makefile "INCLUDEPATH=$(MYSQL INCLUDE PATH)" "LIBS = -L $(MYSQL LIB PATH) -lmysqlclient_r" mysql.pro
$sudo make
$sudo make install
(NOTE:remember the output path)
install -m 755 -p "../../../../plugins/sqldrivers/libqsqlmysql.so" "
/usr/lib/i386-linux-gnu/qt4/plugins/sqldrivers/libqsqlmysql.so"
it's not in standard qt creator search path yet!
$sudo cp ../../../../plugins/sqldrivers/libqsqlmysql.so /opt/qt4/plugin/sqlderivers/
*************************解决方法2***********************************
我实际上是用方法二解决的问题!非常感谢大家包容我的椒盐英语。
主要参考:
http://www.qtcentre.org/threads/45296-QSqlDatabase-QMYSQL-driver-not-loaded
http://blog.csdn.net/e3399/article/details/7614348
qt的安装及连接sql使用注意的更多相关文章
- Centos7.5 php7.2 安装pdo_sqlsrv 连接 sql server(转)
Centos7.5 php7.2 安装pdo_sqlsrv 连接 sql server 转:https://blog.csdn.net/gdali/article/details/82912542 ...
- 【原创】Qt 使用ODBC driver 连接SQL Server
最近在做数据库的课程设计.第一个需要解决的问题是使用什么工具来实现这个系统.经过一番资料查找,决定使用SQL Server Express 2012作为服务器,使用Qt作为编写客户端程序语言.问题是c ...
- win7 安装用mingw编译的Qt源码并连接postgresql
下载Qt 1.下载qt-creator-windows-opensource-2.8.0,下载路径:http://download.qt.io/official_releases/qtcreator/ ...
- Qt通过ODBC连接SQL Server2008实践总结
Qt连接数据库的方式很多,这里说明一种最常用也是最实用的方式,因为这种方式在Windows上开发程序使用起来非常方便,并且也是远程连接数据库所需要用到的方式. 前提工作: 在Win7下安装了SQL S ...
- Linux 安装Xampp以后,Apache服务器无法启动,以及启动后,连接sql数据库遇到的问题的解决方法
xampp安装以后,搭建服务器的时候,我们会遇到哪些问题呢?1.MySQL Database 可以启动,而Apache Web Server无法启动?应该是80端口被占用,那么如何解决呢?我们可以通过 ...
- Qt的安装和使用中的常见问题(详细版)
对于太长不看的朋友,可参考Qt的安装和使用中的常见问题(简略版). 目录 1.引入 2.Qt简介 3.Qt版本 3.1 查看安装的Qt版本 3.2 查看当前项目使用的Qt版本 3.3 查看当前项目使用 ...
- 【戾气满满】Ubuntu 18.04使用QT通过FreeTDS+unixODBC连接MSSQL填坑记(含泪亲测可用)
前言 照例废话几句,想玩下QT,但是学习吧总得想点事情做啊,单纯学习语法用法这些?反正我是学不下去的,脑袋一拍,就先学下怎么连接数据库吧!然而万万没想到,我这是给自己挖了一个深深的坑啊! 学习自然去官 ...
- NetBeans连接SQL server数据库教程
不废话,直接开始 1.下载sqljdbc.jar 可以从微软中国官方网站下载 SQLJDBC微软中国 笔者提供一个网盘链接Sqljdbc.jar 4个压缩包视版本选择,SQL 2012 用sqljdb ...
- PHP5.6.15连接Sql Server 2008配置方案
php5.6的如果想连接Sql Server 2008数据库,需要手动配置扩展和安装一个驱动. 下载SQL Server Driver for PHP的扩展包,64位系统的官方不支持,找到一个非官方的 ...
随机推荐
- c语言中实现从0-1的随机数输出
原文:c语言中实现从0-1的随机数输出 今天晚上同学问了一个巨简单的问题,问我怎么用c语言输出0-1的随机数,可别说,一时之间还想不出来.在写的过程中发现,直接调用random函数还不能实现,用以下方 ...
- Linux 下 简单客户端服务器通讯模型(TCP)
原文:Linux 下 简单客户端服务器通讯模型(TCP) 服务器端:server.c #include<stdio.h> #include<stdlib.h> #include ...
- ActionScript GifPlayer的修改
ActionScript不能播放gif格式的图片,在做as项目的时候如果需要用到加载gif动画图片时,就需要引入第三方包. 常用的第三方包是GifPlayer,在github上可以找到该项目的源代码C ...
- Visual Studio 单元测试之六---UI界面测试
原文:Visual Studio 单元测试之六---UI界面测试 UI界面测试其实就是录制操作路径(Mapping),然后按照路径还原操作顺序的一个过程.这个方法对于Winform和Webform都同 ...
- xfire集成spring构建webservice
前言:xfire.spring都是比较流行的技术,这里就不再赘述他们各自的优点:本文着重介绍xfire和spring的整合,不会做太深入的探究. 服务端 1. web.xml配置 spring配置部分 ...
- ASP.Net使用母版页窗
背景:每一个网页的基本框架结构类似: 浏览站点的时候会发现,好多站点中.每一个网页的基本框架都是一样的,比方,最上面都是站点的标题,中间是内容.最以下是站点的版权.开发提供商等信息: watermar ...
- GIMP也疯狂之动态图的制作(四)
本篇文章为gimp制作动态图的第四篇.在之前的基础上简单的拓展了下思路.就能做出蛮实用的动态图.本文将介绍两个动态图.第一个为在一张静态图上添加动态图,第二个图为修改部分渐变. 效果: 素材: 其实, ...
- jquery 触屏滑动+定时滚动
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
- Spyder提示ValueError: API 'QString' has already been set to version 1
转载自:http://wuyuans.com/2013/02/spyder-valueerror-api-qstring-has-already-been-set-to-version-1/ 在IPy ...
- Ubuntu下安装Intel Fortran编译器(ifort)
Intel Fortan Compiler简称ifort, Windows下的ifort是收费的,但是Linux系统下提供免费的ifort,可以在下面的链接中下载需要的版本(必须先注册,随后会收到官网 ...