我的Eclipse+Qt学习笔记

摘要:
有了他才可以使用Eclipse的调试功能2.设置QT和Mingw的环境变量假设QT和Mingw目录分别是:D:\Qt\4.4.3;D:\MinGW;现在打开右键我的电脑,系统属性-高级-环境变量设置如下变量:Path值:D:\MinGW\bin;D:\Qt\4.4.3\bin;D:\MinGW\mingw32\bin;变量:Lib值:D:\MinGW\lib;D:\Qt\4.4.3\lib;变量:include值:D:\MinGW\include;D:\Qt\4.4.3\include;变量:QTDIR值:D:\Qt\4.4.33.安装Eclipse3.1Eclipse下载3.2把QT和MinGW集成到Eclipse中下载Eclipse插件在安装时选择你之前安装的Eclipse和MinGW的路径即可注意安装过程中遇到得问题:1、下载mingw-utils,将其中的reimp.exe放到Qt自带的MinGW的bin目录下。

这篇是我10年学习QT的一些学习笔记,和大家一起分享:

1. 安装Qt

1.1 安装qt和mingw

到Qt(http://trolltech.com/developer/downloads/qt),直接下载qt-win-opensource-4.3.2-mingw.exe,安装即可。此版本已经集成了编译环境Mingw(注意:只是编译环境不包括IDE,Eclipse才是真正的IDE),在安装过程中选择自动下载并安装Mingw即可(如果你安装时没有选择安装Mingw那么你也可以手动安装)。

1.2安装调试工具GDB

首先下载GDB(http://jaist.dl.sourceforge.net/sourceforge/mingw/gdb-6.3-2.exe

下载后安装到刚才安装MinGW的文件夹下。有了他才可以使用Eclipse的调试功能

2.设置QT和Mingw的环境变量

假设QT和Mingw目录分别是:

D:\Qt\4.4.3;

D:\MinGW;

现在打开右键我的电脑,系统属性-高级-环境变量

设置如下

变量:Path

值:D:\MinGW\bin; D:\Qt\4.4.3\bin; D:\MinGW\mingw32\bin;

变量:Lib

值:D:\MinGW\lib; D:\Qt\4.4.3\lib;

变量:include

值:D:\MinGW\include; D:\Qt\4.4.3\include;

变量:QTDIR

值:D: \Qt\4.4.3

3.安装Eclipse

3.1 Eclipse下载(http://www.eclipse.org/downloads/

3.2 把QT和MinGW集成到Eclipse中

下载Eclipse插件(http://trolltech.com/developer/downloads/qt/eclipse-integration-download

在安装时选择你之前安装的Eclipse和MinGW的路径即可

注意安装过程中遇到得问题:

1、下载 mingw-utils,将其中的 reimp.exe 放到 Qt 自带的 MinGW 的 bin 目录下。
2、mysql安装要全部安装,否则会不到lib和include目录。

3、在c:下建一个mysql目录,将其安装目录下得lib和include复制过去

4. MySQL 自带的 .lib 文件是为 VC 准备的,所以先要生成 MinGW 能认识的 .a 文件:
C:\mysql\lib\opt>d:\Qt\2009.01\mingw\bin\reimp.exe libmysql.lib
操作成功的话会生成 LIBMYSQL.def 和 liblibmysql.a。
5. 编译 Qt 的 MySQL 驱动:
D:\Qt\2009.01\qt\src\plugins\sqldrivers\mysql>qmake -o Makefile "INCLUDEPATH+=C:/MYSQL/INCLUDE" "LIBS+=C:/MYSQL/LIB/OPT/liblibmysql.a" mysql.pro
D:\Qt\2009.01\qt\src\plugins\sqldrivers\mysql>make

见附图1.2.3.

qt连接数据库测试:

两种方式:1、dns 2、字符串 详细请看测试代码

#include <QtGui>
#include <QApplication>
#include <QtSql>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QTextCodec>
#include <QStringList>
#include <QDebug>
#include <QSqlError>

QString getMSSQLConnectionString(const QString &host, const QString &user,
const QString &pass, const QString &dbname) {
return QString("DRIVER={%1};SERVER=%2;DATABASE=%3;UID=%4;PWD=%5") .arg(
"SQL Server") .arg(host).arg(dbname).arg(user).arg(pass);
}

static bool CreateMsSqlServerConn() {

QSqlDatabase dbconn = QSqlDatabase::addDatabase("QODBC");

QString
dsn =
QString(
"Driver={sql server};server=LYQ-COM\\SQL2005;database=wgdb;uid=sa;pwd=111111");

//dbconn.setDatabaseName("test");

dbconn.setDatabaseName(dsn);

dbconn.setHostName(QString("LYQ-COM\\SQL2005"));

//dbconn.setPort(1433);

dbconn.setUserName(QString("sa"));

dbconn.setPassword(QString("111111"));

bool r = dbconn.open();

if (!r) {
QMessageBox::critical(0, QObject::tr("Database Error"),
dbconn.lastError().text() + dsn);
return false;
}

QSqlQuery query = QSqlQuery(dbconn);

QTextCodec *BianMa = QTextCodec::codecForName("GBK");

///query.exec("Insert into [tblTest] (F_cName,F_cSex) values('test','test')");

query.exec(BianMa->toUnicode(
"Insert into [tblTest] (F_cName,F_cSex) values('李四1','女1')"));

/* QT4 中文乱码之解决
*
///以下代码在E文XP环境下测试OK

////QTextCodec *TxtCode = QTextCodec::codecForName ("GBK");

///需要引用中文的地方如下:

///TxtCode ->toUnicode("中国System Starting...");
*/

QMessageBox::critical(0, "test", "OK!!!");

return true;
}

static bool CreateMySqlConnection() {

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

db.setHostName("localhost");

db.setDatabaseName("wgdb");

db.setUserName("root");

db.setPassword("111111");

if (!db.open()) {
QMessageBox::critical(0, QObject::tr("Database Error"),
db.lastError().text());
return false;
}

QSqlQuery query;

//query.exec("insert into book values( 3, 'title', 'author') ");

query.exec("select `StrName`,`StrAge` from test1 ");

while (query.next()) {

QString title = query.value(0).toString();
QString author = query.value(1).toString();

QMessageBox::critical(0, title, author);

}
return true;
}

int main(int argc, char *argv[]) {
QApplication a(argc, argv);

QSqlDatabase db1 = QSqlDatabase::addDatabase("QODBC");
db1.setDatabaseName(getMSSQLConnectionString("LYQ-COM\\SQL2005", "sa",
"111111", "WGDB"));
if (!db1.open()) {
QMessageBox::critical(0, QObject::tr("Database Error Conn.."),
db1.lastError().text());
} else {
QSqlQuery query1 = QSqlQuery(db1);

QTextCodec *BianMa = QTextCodec::codecForName("GBK");

///query.exec("Insert into [tblTest] (F_cName,F_cSex) values('test','test')");

query1.exec(BianMa->toUnicode(
"Insert into [tblTest] (F_cName,F_cSex) values('李四1','女1')"));

/* QT4 中文乱码之解决
*
///以下代码在E文XP环境下测试OK

////QTextCodec *TxtCode = QTextCodec::codecForName ("GBK");

///需要引用中文的地方如下:

///TxtCode ->toUnicode("中国System Starting...");
*/

QMessageBox::critical(0, "Insert Sucess!", "OK!!!");

}

qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "\t" << driver;

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
qDebug() << "ODBC driver valid?" << db.isValid();

/*
if (!CreateMsSqlServerConn()){
return 1;
}

if (!CreateMySqlConnection()){
return 1;
}
*/
AAA w;
w.show();
return a.exec();
}



免责声明:文章转载自《我的Eclipse+Qt学习笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇RAMPS1.4 3d打印控制板接线与测试2Linux命令--查看磁盘空间下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

usb驱动之打印usb设备信息(二)

以下是打印鼠标左右键及其他输入的源代码,详细说明见https://www.cnblogs.com/zhu-g5may/p/9309381.html 1 /*参考/drivers/hid/usbhid/usbmouse.c*/ 2 3 #include <linux/kernel.h> 4 #include <linux/slab...

linux系统监控示例:vmstat

一。基础演示: [nwom@WLAN-linux-3 ~]$ vmstat -n 2 10 ([nwom@WLAN-linux-3~]vmstat –n 2 10 以每2秒钟的频率执行10次取样) procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----...

【视频开发】【Live555】摄像头采集,264编码,live555直播(0)

参看 有关live555  1.首先需要修改live555,定义从 内存中直接获取source而不是从文件读取source的类。 自己实现的类命名为 H264FramedLiveSource    /* * Filename: H264FramedLiveSource.hh * Auther: chenbin * Create da...

mingw链接opengl

    最近想要在mingw上搭建opengl环境,按照https://learnopengl-cn.github.io/01%20Getting%20started/02%20Creating%20a%20window/上的操作获取了glad的文件,但是glfw则是下载的prebuild binaries。     有两点需要注意:     1.如果是以...

03点云文件常用格式转换(pcd,txt,ply,obj,stl)

1.  pcd转txt 1 #include <iostream> 2 #include <fstream> 3 #include <pcl/io/pcd_io.h> 4 5 int main(int argc, char *argv[]) 6 { 7 8 pcl::PointClou...

Qt+QGis二次开发:打开S-57格式(*.000)电子海图数据,并设置多边形要素的显示风格

不过多的废话了,直接上源码: addChartlayers()方法时“打开海图”按钮的triggered()信号所绑定的槽函数。 //添加海图数据小按钮槽函数 voidMainWindow::addChartlayers() {   m_mapCanvas->freeze(true);//冻结或解冻地图画布对象,frozen (true) or...