24

我想制作一个 QT4(使用 QT 设计器)对话框,其中包含必须选择文件的部分。

现在,我知道 QFileDialog 存在,我可以编写一些我想要的东西。但是我也可以在 QT 设计器中这样做吗?

有没有办法在 QT 设计器中获取“文件选择”小部件?或者,我记得这些按钮,将所选文件作为标题和一个小箭头,允许用户通过 QFileDialog 选择另一个文件?

那么有没有现成的解决方案,还是我必须自己编程?

4

3 回答 3

37

据我所知,Qt 设计器没有可用的文件对话框。但是您可以使用几行代码轻松完成。

假设您有一个名为 pushButton 的简单按钮,并且路径应存储在 lineEdit 中。

def selectFile():
    lineEdit.setText(QFileDialog.getOpenFileName())

pushButton.clicked.connect(selectFile)

[编辑]只是想知道,您是否有机会使用 KDE?如果是这样,那么您可以为此使用 KUrlRequester。它可以很容易地配置为支持从文件到 url 到目录的任何内容。

于 2010-07-10T13:52:40.537 回答
13

QFileDialog存在于QtGui. 至少在我的 4.4 版中,而且可能更早。我认为它不在 Designer 中的原因是它打开了自己的窗口,而不是作为放置在另一个窗口上的小部件。

QTDesigner 的文档可能会更好,至少暗示了它的存在。

实例化它并运行show命令。它立即出现并默认为/.

import QtGui
self.fileDialog = QtGui.QFileDialog(self)
self.fileDialog.show()
于 2011-08-04T20:39:51.620 回答
5

您可以在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)
于 2019-01-12T17:09:35.073 回答