PySide和Python如何浏览文件夹并写入文件名?

2024-05-14 17:07:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想按一个按钮,然后打开一个文件浏览器,把选中的文件写在标签上。当按下按钮时,我会调用此功能:

    @Slot()
    def browse_folder(self):
        self.fname = QtGui.QFileDialog.getOpenFileName()
        self.statusLabel.setText(self.fname)

但是,我得到一个错误:

^{pr2}$

如何将保存选定文件名的self.fname转换为unicode?在


Tags: 文件self功能def浏览器标签folder按钮
1条回答
网友
1楼 · 发布于 2024-05-14 17:07:01

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 (*.*)')。在

因此,您需要在调用setText之前提取元组的第一个元素。在

相关问题 更多 >

    热门问题