• 7236阅读
  • 9回复

[提问]Qt3.3.8中,如何把QFileDialog自带的对话框中文化 [复制链接]

上一主题 下一主题
离线pingpingzhu
 
只看楼主 正序阅读 楼主  发表于: 2010-05-20
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
在Qt3.3.8中,可以把Qt一些内置的对话框中文化吗?如QFileDialog用于文件打开和保存弹出的对话框。
离线paranoid
只看该作者 9楼 发表于: 2010-05-21
你参考了一个比较古老的帖子,别跟它较劲了
qt4.6.2已经提供了内置的集成开发环境,qt creator,放弃kdevelop吧
离线pingpingzhu
只看该作者 8楼 发表于: 2010-05-21
Qt4可以在Kdevelop环境下运行起来了,相关的环境设置和编译方法参照了http://blog.csdn.net/mazidao2008/archive/2010/04/07/5459591.aspx网页中的解决方法,按照3楼的说法可以把QFileDialog自带的对话框中文化了。
谢谢大家对我的帮助。但是使用Qt4的时候还是遇到了不少困难,在这里想问问Qt4中的一些控件的使用,如:item view中的listview,treeviewa,tabview,还有item widget中的list widget,tree widget,table widget都是如何使用的?为什么拖放上去都是一个框框,如何设置他们的item,column的属性等?
还有,布置控件vertical,horizontal是怎么用的,直接拖放没有Qt3的效果,难道这些要手写代码?
离线paranoid
只看该作者 7楼 发表于: 2010-05-20
要是这样的话,你索性下载qt sdk 4.6.2 for linux,直接安装就好了。ide环境就是sdk里面带的qt creator
离线pingpingzhu
只看该作者 6楼 发表于: 2010-05-20
qt 的安装方法有两种吧,一种是用apt-get install qt3-dev-toos qt3-qtconfig qt3-doc qt3-designer(我是这么安装qt3的),在QTDIR/translations下没找到qt_zh_CN.ts和qt_zh_CN.qm,另一种方法就是下载源码./configure,make,make install(我没试这个安装方法)。但是我之前安装了Qt4一个版本就能找到那两个文件,后来在网上查了些资料感觉这种解决方法只是针对Qt4的,打算用Qt4版本的,可是Qt3和Qt4差别真是太大了,放到我的Kdevelop编译环境中根本就用不起来,又查资料把之前的Qt4删除了,在官网上下了个qt4.3.2的源码,用第二种方法安装,make install是成功了,但是不知为什么程序菜单中没出现,只好在安装路径上找到把它打开,用kde环境具体的使用方法还不知道呢
离线paranoid
只看该作者 5楼 发表于: 2010-05-20
你再仔细找找,我特地下了一个3.3.8 for linux版,里面是有这个文件的,同样的位置QTDIR/translations
离线pingpingzhu
只看该作者 4楼 发表于: 2010-05-20
qt_zh_CN.ts这个文件是不是Qt4版本的才有啊?而且我试过把我工程用lupdate 生成.ts文件然后打开Qt linguist 进行翻译发现只能翻译我自己拖放的控件,对Qt自身带的对话框根本就不显示在其中,难道对类似QFileDialog自带的对话框Qt3版本的不能进行汉化,Qt4就一定可以吗?大家有试过的吗?
离线paranoid
只看该作者 3楼 发表于: 2010-05-20
到你的qt安装目录下找到qt_zh_CN.ts这个文件,这个是qt自带的所有qt类的翻译文件,使用lrelease生成qt_zh_CN.qm.
把qm文件放到可执行文件同级目录,在你的主程序中:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QTranslator translator;
    bool result = translator.load("qt_zh_CN");
    Q_ASSERT(result);
    app.installTranslator(&translator);
    .....
}
如果qt_zh_CN.ts中没有你要的翻译,你可以自己手动编辑此文件,添加自己需要的翻译(参考它的格式)
离线pingpingzhu
只看该作者 2楼 发表于: 2010-05-20
QFileDialog中有getOpenFileName()和getSaveFileName()这两个函数,调用的对话框是Qt自带的,继承Qt的类,是不是要自己重新写打开和保存的实现?有没有好的汉化方法?
离线xtfllbl

只看该作者 1楼 发表于: 2010-05-20
你可以继承qt的类,然后自己进行中文化。
上海欢迎您
快速回复
限100 字节
 
上一个 下一个