页次: 1
我用qt编写了一个程序,想查看一个目录下的文件。
就用了下面代码来查询目录:
QString s = QFileDialog::getExistingDirectory(this,"电子书所在目录","/home",QFileDialog::ShowDirsOnly|QFileDialog::DontResolveSymlinks);
可能由于我用的是LXDE,查询目录时,qt并没有调用系统打开目录对话框,而是打开了qt自带的一个。qt自带的这个别的都挺好,问题是不能显示中文目录。
这个程序我在ubuntu下运行时,由于qt调用了系统原生的对话框,打开中文目录是没问题的。
有朋友遇到这个问题吗?
额,我想说的系统原生的对话框是这样的,这是在Ubuntu下的:
没有表达清楚,抱歉啦
多谢大家帮我分析问题,我修改了一下代码,目前已经能够支持中文了:
我把 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)
离线
「系统原生的对话框」是什么?
离线
Unity下,Qt是不会调用原生对话框的。别争,呵呵。
而且什么叫不能显示?是乱码还是没有字体?截张图都没有?Qt内建的应该就是没有字体。你要虫蛇一下
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
我贴了一张图,我想说的是图上那种的,这是在Ubuntu下的。
我想说的是比如leafpad、libreOffice等软件点击打开文件时,显示的“选择文件”对话框都是一个样子的。
就是指的这个,表达的不是很清楚,抱歉啦:-)
问题基本解决了,多谢啦~
「系统原生的对话框」是什么?
最近编辑记录 maxiee (2013-06-24 15:34:47)
离线
恩,好像是这样的。。
不能显示的情况是,在选择对话框里面,只显示英文的目录和文件,中文的目录和文件都没有。
现在加了两行代码,中文目录和文件都正常了,貌似是编码有问题额。。
问题表达地不太清楚,真是抱歉啦:-)
问题基本解决了,多谢啦~
Unity下,Qt是不会调用原生对话框的。别争,呵呵。
而且什么叫不能显示?是乱码还是没有字体?截张图都没有?Qt内建的应该就是没有字体。你要虫蛇一下
最近编辑记录 maxiee (2013-06-24 15:35:01)
离线
页次: 1