Home >Database >Mysql Tutorial >QT预备式(包含MySql配置)
第一次系统地玩QT,于是诞生了此预备式: 【QT版本4.6.0(VS2008编译版),开发平台推荐使用Qt Creator(最新1.3版),系统这里使用Windows Xp】 QT Qt Creator MySql安装: QT :不知道QT开发人员怎么想的,总是跟空格过不去,安装QT时尽量将其装在根目录下
第一次系统地玩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的配置方法:
<pre class="brush:php;toolbar:false">@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批处理运行窗口。
<pre class="brush:php;toolbar:false">@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去吧~
<pre class="brush:php;toolbar:false">@echo off
net stop MySql
echo done.
pause
并运行该批处理。关闭服务的批处理通常都是最好使的,双击即关闭。
<pre class="brush:php;toolbar:false">@echo off
net start MySql
echo done.
pause
关于带数据库驱动的QT程序的部署:在QT程序的main函数中,使用QCoreApplication::addLibraryPath()添加库文件加载路径。
QT的中文化
<pre class="brush:php;toolbar:false"><span>int</span> main(<span>int</span> argc, <span>char</span> *argv[])
{
QApplication a(argc, argv);
<span>//设置tr以及地域。</span>
QTextCodec::setCodecForLocale(QTextCodec::codecForName("<span>GBK</span>"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("<span>GBK</span>"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("<span>GBK</span>"));
<span>//添加库加载路径。</span>
QCoreApplication::addLibraryPath(QCoreApplication::applicationDirPath() + '/' + PLUGINS_NAME);
Widget w;
w.show();
<span>return</span> a.exec();
}
注意:tr只有在类中已经继承了QObject时才可以直接使用,否则可以使用QObject::tr()。