【问题标题】:PyQt4 File select widgetPyQt4 文件选择小部件
【发布时间】:2010-07-07 15:36:24
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python qt4 pyqt4 filedialog qfiledialog


    【解决方案1】:

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

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

    def selectFile():
        lineEdit.setText(QFileDialog.getOpenFileName())
    
    pushButton.clicked.connect(selectFile)
    

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

    【讨论】:

    • 嘿,我必须做同样的事情,但我得到了NameError: global name 'QFileDialog' is not defined的错误
    • @Latik:当然需要导入,from PyQt4.QtGui import QFileDialog
    • KUrlRequester 真的很漂亮,但是如果我为 Windows 安装 KDE,它会在 Windows 上工作(随时可用)还是只在 *NIX 系统上工作?
    • 在PyQT5中,导入如下: from PyQt5.QtWidgets import QFileDialog
    • 在 PySide 中,有相同的函数 (getOpenFileName),但它返回一个元组,而不是一个字符串。所以我应该使用像 getOpenFileName()[0] 这样的索引。我不知道在 PyQt 中会怎样。
    【解决方案2】:

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

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

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

    import QtGui
    self.fileDialog = QtGui.QFileDialog(self)
    self.fileDialog.show()
    

    【讨论】:

      【解决方案3】:

      您可以在 QFileDialog 类中使用方法 getOpenFileName()

      QFileDialog.getOpenFileName() 将返回文件路径和选择的文件类型

      我得到了这个:('C:/Users/Sathsara/Desktop/UI/Test/test.py', 'All Files (*)')

      要仅获取文件路径,请使用 QFileDialog.getOpenFileName()[0]


      示例代码:

      def selectFile():
         print(QFileDialog.getOpenFileName()[0])
      
      
      dlg.locationBtn.clicked.connect(selectFile)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-01
        • 1970-01-01
        • 2021-07-15
        • 2015-07-15
        • 1970-01-01
        • 1970-01-01
        • 2012-11-13
        • 1970-01-01
        相关资源
        最近更新 更多