您尚未登录。

#1 2013-06-21 23:44:22

maxiee
会员
注册时间: 2013-06-21
帖子: 3

[已解决]请教:用qt编程采用了qt自带的打开目录,中文目录显示不出来

我用qt编写了一个程序,想查看一个目录下的文件。

就用了下面代码来查询目录:
QString s = QFileDialog::getExistingDirectory(this,"电子书所在目录","/home",QFileDialog::ShowDirsOnly|QFileDialog::DontResolveSymlinks);

可能由于我用的是LXDE,查询目录时,qt并没有调用系统打开目录对话框,而是打开了qt自带的一个。qt自带的这个别的都挺好,问题是不能显示中文目录。

这个程序我在ubuntu下运行时,由于qt调用了系统原生的对话框,打开中文目录是没问题的。

有朋友遇到这个问题吗?

额,我想说的系统原生的对话框是这样的,这是在Ubuntu下的:
duihuakuang
没有表达清楚,抱歉啦

多谢大家帮我分析问题,我修改了一下代码,目前已经能够支持中文了:
我把    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
改成了
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

就可以了,看来是哪里编码不统一造成的,这块还比较模糊。

最近编辑记录 maxiee (2013-06-24 14:59:24)

离线

#2 2013-06-22 10:36:20

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,447
个人网站

Re: [已解决]请教:用qt编程采用了qt自带的打开目录,中文目录显示不出来

「系统原生的对话框」是什么?

离线

#3 2013-06-22 13:45:50

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: [已解决]请教:用qt编程采用了qt自带的打开目录,中文目录显示不出来

Unity下,Qt是不会调用原生对话框的。别争,呵呵。
而且什么叫不能显示?是乱码还是没有字体?截张图都没有?Qt内建的应该就是没有字体。你要虫蛇一下


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#4 2013-06-24 15:02:55

maxiee
会员
注册时间: 2013-06-21
帖子: 3

Re: [已解决]请教:用qt编程采用了qt自带的打开目录,中文目录显示不出来

我贴了一张图,我想说的是图上那种的,这是在Ubuntu下的。
我想说的是比如leafpad、libreOffice等软件点击打开文件时,显示的“选择文件”对话框都是一个样子的。
就是指的这个,表达的不是很清楚,抱歉啦:-)
问题基本解决了,多谢啦~

百合仙子 说:

「系统原生的对话框」是什么?

最近编辑记录 maxiee (2013-06-24 15:34:47)

离线

#5 2013-06-24 15:08:38

maxiee
会员
注册时间: 2013-06-21
帖子: 3

Re: [已解决]请教:用qt编程采用了qt自带的打开目录,中文目录显示不出来

恩,好像是这样的。。
不能显示的情况是,在选择对话框里面,只显示英文的目录和文件,中文的目录和文件都没有。
现在加了两行代码,中文目录和文件都正常了,貌似是编码有问题额。。
问题表达地不太清楚,真是抱歉啦:-)
问题基本解决了,多谢啦~

xtricman 说:

Unity下,Qt是不会调用原生对话框的。别争,呵呵。
而且什么叫不能显示?是乱码还是没有字体?截张图都没有?Qt内建的应该就是没有字体。你要虫蛇一下

最近编辑记录 maxiee (2013-06-24 15:35:01)

离线

页脚