首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt程序移栽时需要拷贝哪些文件

2012-12-14 
Qt程序移植时需要拷贝哪些文件?写的一个Qt程序,在我自己电脑上(Windows 7 64bit)运行都是正常的,但是一拷

Qt程序移植时需要拷贝哪些文件?
写的一个Qt程序,在我自己电脑上(Windows 7 64bit)运行都是正常的,但是一拷贝到其他电脑(Windows 7 32bit; Windows XP等),有些功能就不正常了。特别是字体设置,“@字体”的设置都无效,但在我本机上是正常的。
我在移植的时候拷贝了如下一些文件夹:
plugins\imageformats; (支持不同格式的图片读取)
plugins\codecs;(解决中文乱码问题)
以及QtCore4.dll; QtGui4.dll等文件。
如果要使字体也能正常起作用,还需要拷贝哪些文件呢?
谢谢!!!
[最优解释]
我在程序中用黑体,发布了就没有问题。
是不是其它怎么地方出问题了
[其他解释]
要在代码的入口处设置plugins目录
里面指明了如何让qt程序加载codecs.dll这些插件
可以网上搜下 相关教程很多
[其他解释]
另外 你可以显示的用app加载指定的QFont
你检查下 是否存在代码里显示加载font的地方
要确保两台主机都有同样的字体
[其他解释]
depends 和pe只能看出静态依赖的库
QT里的一些资源是按需加载的
比如qt的一些插件 只有当指定正确的目录方可加载
否则加载不成功也不影响qApp的启动
[其他解释]
就是codecs就够了
目录结构为/plugins/codecs/qcncodecs4.dll
需要注意的是 qcncodecs4有带后缀d的debug版本 也有不带d的release版本
你现在问题是显示乱码 还是对特定字符显示无效?
你可以看看目标机上对应的字体是否已经安装
有些字体本身中文显示对应为小方框的 
检查下目标机上对应字体.ttf文件是否缺失
[其他解释]
还没搞过跨平台,学习学习
[其他解释]
是不是要把codec的dll放在exe文件旁边的codecs目录下?我这里是这么解决的。
[其他解释]
我觉得你这真不是动态链接库的问题,因为codec没弄好的话,除了ui里的中文,其他地方都应该是乱码,因为默认latin1编码。肯定是其他什么地方出的问题
[其他解释]
现在测试的结果是,在英文系统可以正常运行,中文系统就出问题了,总感觉发布的时候少了哪个文件,用depends, ProcessExplorer等都看了,还是没看出问题在哪里。。。
[其他解释]

引用:
depends 和pe只能看出静态依赖的库
QT里的一些资源是按需加载的
比如qt的一些插件 只有当指定正确的目录方可加载
否则加载不成功也不影响qApp的启动


请问与字体设置有关的插件应该是哪些呢?比如,我打包的时候拷贝了codecs,imageformats这两个插件,还在这两个插件的文件夹里都放了Microsoft.VC90.CRT这个文件夹。
[其他解释]
引用:
就是codecs就够了
目录结构为/plugins/codecs/qcncodecs4.dll
需要注意的是 qcncodecs4有带后缀d的debug版本 也有不带d的release版本
你现在问题是显示乱码 还是对特定字符显示无效?
你可以看看目标机上对应的字体是否已经安装
有些字体本身中文显示对应为小方框的 
检查下目标机上对应字体.ttf文件是否缺失
……
我现在的问题是设置带@字体时,在英文windows操作系统上设置是有效的,但在中文版的设置就没有效果。中文显示没有乱码,就是setFontFamily()时在中文版的系统上无效。
[其他解释]

我想实现的就是类似QQ聊天面板里的字体设置,像图上的“@宋体”等等,我开发用的操作系统是win7英文版的,把Qt的程序拿到中文版的Windows系统下运行,像上面的字体设置就不起作用了,不知道是发布的时候少拷贝了哪个文件还是其他什么原因?
[其他解释]
引用:
我觉得你这真不是动态链接库的问题,因为codec没弄好的话,除了ui里的中文,其他地方都应该是乱码,因为默认latin1编码。肯定是其他什么地方出的问题

我在main函数里设置了codec了呀:
    QByteArray loc = QTextCodec::codecForLocale()->name();
    QTextCodec::setCodecForTr(QTextCodec::codecForName(loc));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName(loc));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName(loc));
没有乱码出现哦,就是@字体设置不起作用。
[其他解释]
有知道的吗?这个问题太恶心了~
------其他解决方案--------------------


引用:
是不是要把codec的dll放在exe文件旁边的codecs目录下?我这里是这么解决的。
这个我已经放了

热点排行