免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3532 | 回复: 4
打印 上一主题 下一主题

问个pyqt4 getOpenFileName的相关问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-16 09:47 |只看该作者 |倒序浏览
用getOpenFileName获得的文件名不支持中文?选择一个带中文的文件就出错.

        fileName = QtGui.QFileDialog.getOpenFileName()
        fp=open(fileName)


错误提示如下:

Traceback (most recent call last):
  File "E:\python\Mygui\main.py", line 32, in on_select_clicked
    fp=open(fileName)
IOError: [Errno 2] No such file or directory: PyQt4.QtCore.QString(u'E:/python/Mygui/dd - \u590d\u5236.txt')

但选择文件名不带中文的文件就不会报错,请问如何解决这问题?

论坛徽章:
0
2 [报告]
发表于 2009-10-16 16:13 |只看该作者

回复 #1 kaminjo 的帖子

你得到的filename 是Qstring   转换成python string型

这涉及到Qstring 编码 到你本地编码的转换!

论坛徽章:
0
3 [报告]
发表于 2009-10-16 20:24 |只看该作者
请问这个要怎么转换?能说明下么,谢谢了,卡壳一天了

论坛徽章:
0
4 [报告]
发表于 2009-10-16 20:52 |只看该作者

回复 #3 kaminjo 的帖子

files = QtGui.QFileDialog.getOpenFileNames(self,
                                      "Add music files!",
                                      self.openFilesPath,
                                      self.tr("All Files (*.mp3);;Music Files (*.mp3)"))
        if files.count():
            mfilename =[]
            for i in files:
                mfilename.append(unicode(QtCore.QString(i),'utf-8','ignore') )  

        mfilename中文件  就可以打开!!   
         
这是我以前的一段代码,你看一下,是否有用!!

[ 本帖最后由 miocn 于 2009-10-16 20:53 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-10-16 21:22 |只看该作者
谢谢,直接改为fp=open(unicode(fileName))就正常了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP