qt5.8 mysql乱码_Window Qt开发环境搭建及mysql乱码处理

window10 Qt5.8

我都使用的32位,你可以根据自己需要下载,(Mingw是32位)

Mingw

Visual Studio

Mingw

到 Qt官网 下载 qt-opensource-windows-x86-mingw530-5.8.0.exe

傻瓜式安装(next-->next-->finish)

默认安装配置了 Qt Creator

配置

D:\ProgramFiles\Qt\Qt5.8.0\Tools\mingw530_32\bin

D:\ProgramFiles\Qt\Qt5.8.0\5.8\mingw53_32\bin

配置到 PATH

问题

安装报错

Installer Error

Error during installation process(qt.tools.perl):

Execution failed: Could not start: "... QtPath/strawberry-perl-5.22.1.3-32bit.msi /quiet"(Process failed to start: No such file or directory)

解决方法

先运行 strawberry-perl-5.22.1.3-32bit.msi

Visual Studio

下载

到 Visual Studio 下载 Visual Studio 2015 (我下载的 vs2015 3G,其他版本太大了7G)

到 Qt官网 下载 qt-opensource-windows-x86-msvc2015-5.8.0.exe 这个msvc2015已经包含了 qt-creator-opensource-windows-x86-4.2.1.exe

到 Windows 调试工具 下载 Windows 10 调试工具 (WinDbg)

安装

傻瓜式安装(next-->next-->finish)VS 和 Qt

Visual Studio 需要选择 Visual C++

Qt Creator --- 选项 --- 构建和运行 --- 编译器 可以自动识别 Visual C++ Compiler MSVC

Qt Creator --- 选项 --- 构建和运行 --- 构建套件 --- 调试器 = None

安装 WinDbg 调试器

Qt Creator --- 选项 --- 构建和运行 --- Debuggers

可以自动识别 CDB

Qt Creator

此时就可以使用 Qt Creator 开发了

自动补全快捷键 工具 -> 选项 -> 环境 -> 键盘

找到 TextEdit - Complete this 重新设置快捷键 我使用 Alt + / 默认是 Ctrl + 空格

Visual Studio 2015

打开 Visual Studio 2015 --- 工具 --- 扩展和更新 --- 联机搜索 Qt

安装 Qt Visual Studio Tools 后,重启,菜单栏出现 Qt VS Tools

打开 Qt VS Tools --- Qt Options --- Qt Version --- Add --- Path = D:\ProgramFiles\Qt\Qt5.8.0\5.8\msvc2015

此时就可以使用 Visual Studio 2015 开发了

使用Mysql

将 Mysql 下 lib 文件夹中的 *.lib *.dll 复制到 Qt/mingw/bin 或 Qt/msvc2015/bin 下

在 项目.pro 文件中 添加 QT += sql

// mysql 数据库使用

QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); //QMYSQL代表是MYSQL数据库

db.setHostName("127.0.0.1"); //数据库地址

db.setUserName("root"); //用户名称

db.setPassword("123"); //用户密码

db.setDatabaseName("mydbname"); //数据库名称

if(db.open()) {

qDebug() << "database open suc";

QSqlQuery treeQuery(QSqlDatabase::database("treeDatas"));

// 默认只获取所有省

QString sqlStr = "SELECT base_area.code area_code,base_area.name area_name FROM base_area WHERE 1=1 AND LENGTH(CODE) = 2 ORDER BY CODE ;";

// 查询

if (treeQuery.exec(sqlStr)){

// 数据封装

while (treeQuery.next()){

QString code = treeQuery.value("AREA_CODE").toString();

QString name = treeQuery.value("AREA_NAME").toString();

qDebug() << "++++++++++++++++++ " << name;

}

}

}else{

qDebug() << "database open faild";

}

Qt5.* + Mysql5.* 和 Qt5.*+vs2015+mysql5.* 读取数据库乱码

在这个坑里挖了 48h++ 所以特别说明一下,注意编码格式

统一编码

设置数据库编码,utf8

Qt Create —— 工具 —— 选项 —— 文本编辑器 —— 行为 —— 文件编码 = UTF-8

QTextCodec 设置

QTextCodec *codec = QTextCodec::codecForName("UTF-8");

QTextCodec::setCodecForLocale(codec);

你可能感兴趣的:(qt5.8,mysql乱码)