• 7119阅读
  • 6回复

linux下QT用了好久,转windows下突然用不惯了,几个问题望解答 [复制链接]

上一主题 下一主题
离线benkei
 

只看楼主 正序阅读 楼主  发表于: 2009-02-27
— 本帖被 XChinux 执行加亮操作(2009-02-27) —
前两天用的《[roc496提供] Qt 4.5.0 beta1 OpenSource for Win + MSVC2005下载》,安装过程倒是满顺利,用的时候出了些问题:
1.动态库编译不出来,静态库倒可以。在pro文件里设置为dll和staticlib后,MSVC2005的配置里分别设置dll和lib进行编译,动态库出不来,老是出exe,静态的可以
2.编译出的静态库里的static成员变量没法在外面调用,老是报库里找不到那个成员变量
3.语言转换的问题。以前在linux下总是设一个全局的QTextCodec指针m_codec,然后设语言代码比如GBK或UTF8,用的时候就用m_codec->toUnicode("中文"),控件上就能出中文。这次在windows下怎么试都不行,中文不出,换日文编码加日文倒是能显出来。是不是有什么语言库要安装或者配置阿?

谢谢各位解答拉。
离线wd007

只看该作者 6楼 发表于: 2009-03-02
这篇帖子比较有意义,学习了一下,谢谢了
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线benkei

只看该作者 5楼 发表于: 2009-03-02
恩,ls的说法好用,多谢多谢
离线gonboy

只看该作者 4楼 发表于: 2009-02-27
引用第1楼XChinux于2009-02-27 20:24发表的 :
看看你的工程文件、库接口.h文件
关于中文问题:
一、使用国际化方案,源代码码中不要出现中文(注释可以是中文,且是GBK的),然后用.ts进行中文翻译;
二、在main函数中用加下面代码:
.......

即使,两台机器都是XP,但由于设置了 XP的主题不同。可能会导致默认的中文码不同。
使用:QTextCodec::setCodecForTr(QTextCodec::codecForLocale())
即可解决中文化问题!
离线benkei

只看该作者 3楼 发表于: 2009-02-27
工程文件指用qmake生成的.vcproj文件吗?那个不是自动生成的吗?能自己修改吗?
离线benkei

只看该作者 2楼 发表于: 2009-02-27
赫赫,总舵主亲自回答阿。多谢多谢。中文化的那个问题,你说的第二种解决方法,我看过你置顶帖子里的也照着试过了,把三行setCodeforxxx设置都写了的,但确实还是无法显示中文,是跟windows或是VC的什么设置有关吗?
[ 此帖被benkei在2009-02-27 21:03重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2009-02-27
看看你的工程文件、库接口.h文件

关于中文问题:
一、使用国际化方案,源代码码中不要出现中文(注释可以是中文,且是GBK的),然后用.ts进行中文翻译;
二、在main函数中用加下面代码:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
然后就能在源代码中使用中文了,并且是GBK格式的,而非UTF-8。你也不用使用什么toUnicode("...")了,多麻烦。

为什么汉字一定要使用GBK编码? 因为VC编译器的关系。这样你的源代码才能在VC和GCC下都能通过编译。如果是UTF-8的,在VC和GCC下有bomb头的问题。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个