2024-05-14 17:07:01 发布
网友
我想按一个按钮,然后打开一个文件浏览器,把选中的文件写在标签上。当按下按钮时,我会调用此功能:
@Slot() def browse_folder(self): self.fname = QtGui.QFileDialog.getOpenFileName() self.statusLabel.setText(self.fname)
但是,我得到一个错误:
如何将保存选定文件名的self.fname转换为unicode?在
self.fname
PySide的医生在这方面并不聪明。但回答这类问题最简单的方法是构建一个小的测试工具。比如:
from PySide import QtCore,QtGui def do_file(): fname = QtGui.QFileDialog.getOpenFileName() print fname app = QtGui.QApplication([]) button = QtGui.QPushButton("Test File") button.clicked.connect(do_file) button.show() app.exec_()
稍微运行一下,就会发现静态getOpenFileName方法返回一个元组,它首先包含文件名,然后是所选的过滤器。例如,默认情况下,在我的系统上,它返回('C:/Users/Myname/Documents/filename', 'All Files (*.*)')。在
getOpenFileName
('C:/Users/Myname/Documents/filename', 'All Files (*.*)')
因此,您需要在调用setText之前提取元组的第一个元素。在
setText
PySide的医生在这方面并不聪明。但回答这类问题最简单的方法是构建一个小的测试工具。比如:
稍微运行一下,就会发现静态
getOpenFileName
方法返回一个元组,它首先包含文件名,然后是所选的过滤器。例如,默认情况下,在我的系统上,它返回('C:/Users/Myname/Documents/filename', 'All Files (*.*)')
。在因此,您需要在调用
setText
之前提取元组的第一个元素。在相关问题 更多 >
编程相关推荐