PyQt4 文件选择组件
我想用QT4(通过QT设计器)制作一个对话框,这个对话框里需要有一个选择文件的部分。
我知道有QFileDialog这个东西,我可以编写代码来实现我想要的功能。
但是,我能不能直接在QT设计器里做到这一点呢?
有没有什么方法可以在QT设计器中添加一个“选择文件”的小部件?
我记得有那种按钮,可以显示选中的文件名,还有一个小箭头,用户可以通过QFileDialog选择其他文件。
所以说,有现成的解决方案吗?还是说我得自己编程来实现?
3 个回答
你可以使用QFileDialog类里的方法getOpenFileName()。
QFileDialog.getOpenFileName()会返回你选择的文件路径和文件类型。
比如我得到了这个结果:('C:/Users/Sathsara/Desktop/UI/Test/test.py', '所有文件 (*)')
如果你只想要文件路径,可以用QFileDialog.getOpenFileName()[0]。
示例代码:
def selectFile():
print(QFileDialog.getOpenFileName()[0])
dlg.locationBtn.clicked.connect(selectFile)
QFileDialog
是在 QtGui
里存在的。至少在我用的 4.4 版本中是这样,可能更早的版本也有。我觉得它不在设计器里的原因是因为它会打开一个自己的窗口,而不是作为一个可以放在其他窗口上的小部件。
QTDesigner 的文档可以做得更好,至少应该提到它的存在。
你只需要实例化它,然后运行 show
命令。它就会弹出来,默认显示的是 /
。
import QtGui
self.fileDialog = QtGui.QFileDialog(self)
self.fileDialog.show()
据我所知,Qt设计器里没有文件对话框的选项。不过,你可以用几行代码轻松实现这个功能。
假设你有一个简单的按钮,叫做pushButton,路径应该存储在lineEdit里。
def selectFile():
lineEdit.setText(QFileDialog.getOpenFileName())
pushButton.clicked.connect(selectFile)
[编辑]我只是想问一下,你是不是在用KDE?如果是的话,你可以使用KUrlRequester来实现这个功能。它可以很方便地配置,支持文件、网址和目录等各种类型。