• 6018阅读
  • 7回复

[提问]qt自动运行乱码? [复制链接]

上一主题 下一主题
离线jcyangzh
 

只看楼主 倒序阅读 楼主  发表于: 2012-08-21
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
qt正常启动没有乱码,但是如果通过HKCU\Software\Microsoft\Windows\CurrentVersion\Run建立项来启动,则在windows 7下自启动也正常,但是在windows 2003上测试的时候发现会出现乱码?

请问这种情况是什么原因,我已经设置的CString和tr的编码为GBK,使用的是vs 2010 + qt addons,源码格式是gbk的编码。
离线jcyangzh

只看该作者 1楼 发表于: 2012-08-21
问题解决了,这是因为在windows 2003下通过HKCU\Software\....\Run自启动的程序,默认的工作目录是%USERPROFILE%(即windows 2003下是C:\Documents and Settings\user-name),而通过测试发现windows 7下的默认的工作目录是%SYSTEMROOT%\system32(即c:\windows\system32),这里都假设是系统盘是在C盘。

而qt的codecs的dll文件,我是在放在exe文件所在的目录的,所以在程序里边的QApplication::addLibraryPath("./plugins")会找不到相应的dll文件。

离线XChinux

只看该作者 2楼 发表于: 2012-08-21
在main函数中加上下面的代码:
QDir::setCurrent(QApplication::applicationDirPath());
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线飘飘16

只看该作者 3楼 发表于: 2012-08-21
qt中如何避免转义的发生
当用户在一个lineEdit中输入一个比如版本的名字,如1&2,然后存入数据库,当为想用的时候,拿出来显示此版本名字的时候,比如设置成 chekbox的名字的时候,发现它会将1&2中的&转义成下划线_,,从数据库取出来版本用qDdbug()打印的时候正常。因为版本是用户要输入的,所以用户输入不可能关心哪儿需要转义。所以我设计的时候必须避免其转义,让它作为一个整体的字符串来显示。 请问如何解决!! 谢谢!!
Towing genius disdains a beaten path,It seeks regions hitherto unexplored!!
离线xzoscar
只看该作者 4楼 发表于: 2012-08-21
回 2楼(XChinux) 的帖子
顶一贴 赚个人气
XZoscar@163.com
QQ,351565950
南京
离线xzoscar
只看该作者 5楼 发表于: 2012-08-21
回 3楼(飘飘16) 的帖子
我也曾有此问题,Qt显示的时候,把&x当成快捷键来处理了(alt+x),俺也不知道怎么解决,
当时投机取巧,为了目的,把&替换成&&就规避了问题。

我也想要要知道此问题的答案,知道了,请留个贴!
XZoscar@163.com
QQ,351565950
南京
离线飘飘16

只看该作者 6楼 发表于: 2012-08-29
关键是为不能替换用户输入的东西啊!有没有其他办法??
Towing genius disdains a beaten path,It seeks regions hitherto unexplored!!
离线tsinhi

只看该作者 7楼 发表于: 2012-08-29
帮顶了
快速回复
限100 字节
 
上一个 下一个