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使用注意的更多相关文章

  1. Centos7.5 php7.2 安装pdo_sqlsrv 连接 sql server(转)

    Centos7.5 php7.2 安装pdo_sqlsrv 连接 sql server 转:https://blog.csdn.net/gdali/article/details/82912542   ...

  2. 【原创】Qt 使用ODBC driver 连接SQL Server

    最近在做数据库的课程设计.第一个需要解决的问题是使用什么工具来实现这个系统.经过一番资料查找,决定使用SQL Server Express 2012作为服务器,使用Qt作为编写客户端程序语言.问题是c ...

  3. win7 安装用mingw编译的Qt源码并连接postgresql

    下载Qt 1.下载qt-creator-windows-opensource-2.8.0,下载路径:http://download.qt.io/official_releases/qtcreator/ ...

  4. Qt通过ODBC连接SQL Server2008实践总结

    Qt连接数据库的方式很多,这里说明一种最常用也是最实用的方式,因为这种方式在Windows上开发程序使用起来非常方便,并且也是远程连接数据库所需要用到的方式. 前提工作: 在Win7下安装了SQL S ...

  5. Linux 安装Xampp以后,Apache服务器无法启动,以及启动后,连接sql数据库遇到的问题的解决方法

    xampp安装以后,搭建服务器的时候,我们会遇到哪些问题呢?1.MySQL Database 可以启动,而Apache Web Server无法启动?应该是80端口被占用,那么如何解决呢?我们可以通过 ...

  6. Qt的安装和使用中的常见问题(详细版)

    对于太长不看的朋友,可参考Qt的安装和使用中的常见问题(简略版). 目录 1.引入 2.Qt简介 3.Qt版本 3.1 查看安装的Qt版本 3.2 查看当前项目使用的Qt版本 3.3 查看当前项目使用 ...

  7. 【戾气满满】Ubuntu 18.04使用QT通过FreeTDS+unixODBC连接MSSQL填坑记(含泪亲测可用)

    前言 照例废话几句,想玩下QT,但是学习吧总得想点事情做啊,单纯学习语法用法这些?反正我是学不下去的,脑袋一拍,就先学下怎么连接数据库吧!然而万万没想到,我这是给自己挖了一个深深的坑啊! 学习自然去官 ...

  8. NetBeans连接SQL server数据库教程

    不废话,直接开始 1.下载sqljdbc.jar 可以从微软中国官方网站下载 SQLJDBC微软中国 笔者提供一个网盘链接Sqljdbc.jar 4个压缩包视版本选择,SQL 2012 用sqljdb ...

  9. PHP5.6.15连接Sql Server 2008配置方案

    php5.6的如果想连接Sql Server 2008数据库,需要手动配置扩展和安装一个驱动. 下载SQL Server Driver for PHP的扩展包,64位系统的官方不支持,找到一个非官方的 ...

随机推荐

  1. DevExpress gridview下拉框的再次研究

    原文:DevExpress gridview下拉框的再次研究 前几天写了一篇关于研究DevExpress gridview下拉框的随笔(DevExpress gridview下拉框repository ...

  2. td中的值自动换行

    设置td中的值自动换行在<td ></td> 中加上这样一句代码,可以简省设置,使长字符串换行.而不用设置width,height. style="word-wrap ...

  3. sql点滴38—SQL Server 2008和SQL Server 2008 R2导出数据的选项略有不同

    原文:sql点滴38—SQL Server 2008和SQL Server 2008 R2导出数据的选项略有不同 说明: 以前要将一个表中的数据导出为脚本,只有用存储过程.现在在SQL Server ...

  4. sqlserver大容量日志文件处理

    原文:sqlserver大容量日志文件处理 针对SqlServer2000 .SqlServer2005.SqlServer2008.SqlServer2012.SqlServer2014库日志文件优 ...

  5. 大endian和little endian

    大endian和little endian      一般Intel处理器或X86平台是小端 ,只是有点老了摩托罗拉的处理器将采用大端,掌握一下小端序.     小端序一般指低地址存低字节.高地址存高 ...

  6. 空间闹钟-v1.6更新!

    (假设图片无法显示可查看我的qq空间:http://user.qzone.qq.com/805853418/blog/1398785778) 生活助手系列--空间闹钟================= ...

  7. HTML5表单提示placeholder属性兼容IE

    placeholder 属性提供可描述输入字段预期值的提示信息(hint). 该提示会在输入字段为空时显示,并会在字段获得焦点时消失. 注释:placeholder 属性适用于以下的 <inpu ...

  8. Centos中如何配置Texlive2013中文字体的问题

    Centos中如何配置Texlive2013中文字体的问题: 第一步是下载你需要的字体,我从windows/fonts中拷贝的比较多,你只要复制你需要的字体即可. 注意只要文件扩展名为ttf的文件,t ...

  9. Memcached在.Net中的基本操作

    Memcached在.Net中的基本操作 一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅 ...

  10. ESB 设计

    ESB 设计 最近为公司完成了一个 ESB 的设计.下面简要说明一下具体的设计方案. 企业 SOA 整体方案 在前一篇<SOA.ESB.NServiceBus.云计算 总结>中说到,SOA ...