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. 给phpcms v9加入一个主题radio无线电button,它可反复使用,以创建不同的专题部分内容编辑器,添加一个主题来定义自己的领域

    1. 2. 找到 phpcms\modules\special\templates中的special_add.tpl.php和special_edit.tpl.php文件 special_add.tp ...

  2. 【Android平台安全方案】の #00-请不要在外部存储(SD卡)加密存储的敏感信息

    本文翻译自https://www.securecoding.cert.org/confluence/display/java/DRD00-J.+Do+not+store+sensitive+infor ...

  3. 高速决心linux上oracle安装垃圾问题

    问题:在linux安装oracle时间.因为oracle用户local LANG安装问题,原因安装oracle软件.该接口是非常多的安装位置是乱码. 解决方案:在oracle用户运行:export L ...

  4. Codeforces#277 C,E

    C. Palindrome Transformation time limit per test 1 second memory limit per test 256 megabytes input ...

  5. 学习使用简单的php

    配置文件在:/etc/php5/$中,不同的模式含有自己的php.ini配置文件.php可以运行于多种模式:cgi.fastcgi.cli.web模块模式等4种: 我现在使用的模式是cli模式,这里进 ...

  6. CSS3的应用,你学会了吗?

    开场白 CSS3相对于CSS2引入了很多的新的css属性和特效,利用css3实现了原来需要加入js才能模拟的效果,因此前端性能提高了很多. 各大浏览器厂商包括IE都逐渐的加大对CSS3 HTML5的支 ...

  7. 实例学习SSIS(四)--使用日志记录和错误流重定向

    原文:实例学习SSIS(四)--使用日志记录和错误流重定向 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习 ...

  8. leetcode[96] Binary Tree Inorder Traversal

    给定树根root.实现中序遍历,也就是左根右. 用递归的话,很简单,左边的返回值加上root的再加上右边的就行. 我自己写的有点挫: /** * Definition for binary tree ...

  9. tsung 对 openfire 压力测试

    tsung 对 openfire 压力测试   1. 参考 http://blog.csdn.net/foxisme2/article/details/7521139 http://blog.csdn ...

  10. Csharp Syntactic sugar

    C#语法糖(Csharp Syntactic sugar)大汇总 首先需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在 ...