热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

QT预备式(包含MySql配置)未完成……

20100423:Fixes:更新批处理,以兼容WIN7。第一次系统地玩QT,于是诞生了此预备式:【QT版本4.6.0&#x

2010/04/23:Fixes : 更新批处理,以兼容WIN7。

第一次系统地玩QT,于是诞生了此预备式:

【QT版本4.6.0(VS2008编译版),开发平台推荐使用Qt Creator(最新1.3版),系统这里使用Windows Xp】

QT & Qt Creator & MySql安装:
QT:不知道QT开发人员怎么想的,总是跟空格过不去,安装QT时尽量将其装在根目录下,路径中尽量不要有中文,否则由于这问题出现诡异情况,GOOGLE都不一定好使~
Qt Creator:我的Qt Creator是在VS2008安装完成之后装的。装完Creator,它就默认使用VS编译器了(如果有问题,从VS环境变量、QT环境变量入手!)。但这也带来一个问题,就是调试器不能用GDB,要用微软的CDB(下载地址),在上面挑个最新版的下载安装。我这里Creator用的是1.3版的,对于CDB兼容性还是有问题的,会提示找不到"dbgeng.dll"。这时需要把CDB安装文件夹中的"dbghelp.dll"拷贝到Creator的Bin目录下,完成后就可以正常使用CDB调试了。
MySql:MySql装上去通常会出现万恶的1067错误,针对该错误的解决方法可谓五花八门。这里MySql建议安装完全版的(除非很了解MySql,不然就不要安装Essential版),装的时候也是尽量挑英文无空格路径装,免得万一因路径出问题折腾。MySql的配置方法:

  • 把my-small.ini拷贝成my.ini
  • 在其中的[client]下加上default-character-set=GBK;在[mysqld]下加上default-character-set=GBKbasedir = "D:\MySql"(MySql路径)、datadir = "D:\MySql\data"(数据库路径)、tmpdir = "D:\MySql\\temp"(临时文件夹,注意双"\"转义"\t")。其中各路径根据MySql安装情况自己修改。
  • 在my.ini旁边创建一个文本文件,文件名改为Create.bat。用记事本打开,粘进如下代码:

@echo off

cd/d %~dp0

@echo Build DataBase ...

mkdir data

mkdir temp

copy /V /Y ".\my.ini" "%windir%\my.ini"

.\bin\mysqld.exe --defaults-file=".\my.ini" --console

@echo Failure.

pause

并运行该批处理。如果最后未出现Failure输出,则创建数据库成功!创建成功后,关闭Create.bat批处理运行窗口。

  • 在my.ini旁边再创建一个文本文件,文件名改为Rebuild_And_Start_Service.bat。用记事本打开,粘进如下代码:

@echo off

cd/d %~dp0

@echo Now Reinstall MySql Service ...

.\bin\mysqld.exe --remove

.\bin\mysqld.exe --install MySql

@echo Start Service ...

net start MySql

@echo done.

pause

并运行该批处理。人品不错的话,应该是顺利启动服务了,碰1067的话GOOGLE去吧~

  • 为了日后管理方便,需要再创建个批处理来停止MySql服务。 在my.ini旁边再创建一个文本文件,文件名改为Stop_Service.bat。用记事本打开,粘进如下代码:

@echo off

net stop MySql

echo done.

pause

并运行该批处理。关闭服务的批处理通常都是最好使的,双击即关闭。

  • 再补充一个启动MySql服务的批处理Start_Service.bat,便于在Stop_Service.bat运行后再次启动服务:

@echo off

net start MySql

echo done.

pause

  • 上面一切都搞定,MySql服务运行后,就可以运行MySql安装文件夹下Bin目录中的mysql.exe,试试MySql功能正常不。
  • MySql可以启动并正常使用后,将MySql数据库驱动(点击看编译方法)拷贝到“%QTDIR%\plugins\sqldrivers”中。在MySql安装目录中找到“libmysql.dll”,并将其拷贝到“%QTDIR%\bin”下。

关于带数据库驱动的QT程序的部署:在QT程序的main函数中,使用QCoreApplication::addLibraryPath()添加库文件加载路径。

QT的中文化
      上面的已经准备完成了,可以开始编写QT程序了。用Designer拖个框啥的,上面的文字标签可以直接打中文(也能够正常显示),现在的Designer国际化方面做得已经很好了,默认就把所有界面标签文字转为可翻译的,这样方便未来对软件国际化。但如果使用如QMessageBox来弹个对话框,代码里打入中文会导致对话框最终显示出来为乱码。解决方案是:QT程序中所有用到字符串的地方,最好使用tr来把字符串括起来。一是方便对其国际化;二是可以在main函数中加入tr区域选择代码来消除乱码。修改后的main函数如下:

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

//设置tr以及地域。

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));

QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

//添加库加载路径。

QCoreApplication::addLibraryPath(QCoreApplication::applicationDirPath() + '/' + PLUGINS_NAME);

Widget w;

w.show();

return a.exec();

}

注意:tr只有在类中已经继承了QObject时才可以直接使用,否则可以使用QObject::tr()。



推荐阅读
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 本文详细解释了为什么在成功执行移动赋值操作后,对象的析构函数会被调用,并提供了代码示例和详细的分析。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 本文介绍了Linux系统中的文件IO操作,包括文件描述符、基本文件操作函数以及目录操作。详细解释了各个函数的参数和返回值,并提供了代码示例。 ... [详细]
  • 深入理解 .NET 中的中间件
    中间件是插入到应用程序请求处理管道中的组件,用于处理传入的HTTP请求和响应。它在ASP.NET Core中扮演着至关重要的角色,能够灵活地扩展和自定义应用程序的行为。 ... [详细]
  • ------------------------------————————————————————————————1.定义一个类,实现与被增强对象相同的接口2.在类中定义一个对象,记住被增强 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • Vue 开发与调试工具指南
    本文介绍了如何使用 Vue 调试工具,包括克隆仓库、安装依赖包、构建项目以及在 Chrome 浏览器中加载扩展的详细步骤。 ... [详细]
author-avatar
手机用户2602940113
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有