您的位置:首页 > 编程语言 > Qt开发

QT4对话框中文乱码问题

2009-03-06 16:10 225 查看
一般情况下,在main函数开始处,加入如下代码:

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

然后在代码中,涉及中文之外,使用类似tr("中文")的语法即可解决问题.

但笔者在首次开发中,遇到一个现象,程序编译成功后,若直接从编译器菜单下启动程序,则界面显示正常,但进入程序文件夹,直接运行程序,程序界面显示有乱码.

造成这个现象的原因,很可能是动态库路径设置不正确.

比如QT的安装目录为D:/Qt/qt-win-commercial-src-4.3.1,简单的做法是将"D:/Qt/qt-win-commercial-src-4.3.1/bin"放置系统环境变量中path项的开始处.即可解决该问题.

但此法有可能造成问题,若系统中有其它应用程序也是基于QT的,那么那些应用程序有可能会优先搜索到path中第一项,有可能会导致那些应用程序找不到自己期望的函数名称或者地址.所以,还有一个办法就是,将"D:/Qt/qt-win-commercial-src-4.3.1/bin"中使用到的动态库复制到可执行模块当前目录.

附windows下动态库的搜索路径:

1.通过隐式和显式链接,Windows 首先搜索“已知 DLL”,如 Kernel32.dll 和 User32.dll
2.当前进程的可执行模块所在的目录。
3.当前目录。
4.Windows 系统目录。GetSystemDirectory 函数检索此目录的路径。
5.Windows 目录。GetWindowsDirectory 函数检索此目录的路径。
6.PATH 环境变量中列出的目录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: