标签: qfiledialog

QFileDialog打开多个文件

我正在尝试显示一个对话框以打开多个文件,但似乎无法正常工作:

def loadFiles(self)

    filter = "TXT (*.txt);;PDF (*.pdf)"
    file_name = QtGui.QFileDialog()
    file_name.setFileMode(QFileDialog.ExistingFiles)
    names = file_name.getOpenFileNameAndFilter(self, "Open files", "C\\Desktop", filter)
    print names
Run Code Online (Sandbox Code Playgroud)

我以为关键词是QFileDialog.ExistingFiles

我在这里做错了什么?

python qt4 qfiledialog

4
推荐指数
1
解决办法
6392
查看次数

QFileDialog取消

我是QT的新手.目前在我的项目中我实施了QFileDialog.

在我的用例中:每当用户选择一个文本文件时,它就会执行functionA.但是,我发现如果单击fileDialog中的cancel,functionA仍会执行.

这是我的代码snipplet:

QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
                                                    "/home",
                                                 tr("Text File (*.txt"));

// I want something like following :

if(QFileDialog.isOkButtonClicked)
{
    // execute functionsA
}
Run Code Online (Sandbox Code Playgroud)

我查看了QFileDialog文档,没有类似的东西.有可能实现这个目标还是有其他解决方案?谢谢.

qt qfiledialog

4
推荐指数
1
解决办法
4773
查看次数

pyqt5 - 查找文档

我一直在使用Summerfields关于使用Python和QT快速GUI编程的书... pyqt是精确的,但2007年的书使用版本4.something我试图使用当前版本5.4.2. .

我想弄清楚有一些变化,并希望得到一些如何找到东西的帮助.以下是文件保存对话框的示例 - 来自书籍:

    fname = QFileDialog.getSaveFileName(self,
            "Image Changer - Save Image", fname,
            "Image files ({})".format(" ".join(formats)))
Run Code Online (Sandbox Code Playgroud)

这不起作用,可能主要是因为在pyqt5中QFileDialog返回一个元组而不是一个字符串.我能解决这个问题的唯一方法就是试错.pyqt5文档引用了QT,我真的不明白.

我得到以下工作:

   fname = QFileDialog.getSaveFileName(self, 'some text',
            "whatever.png", '*.png')
   if "." not in fname[0]:
       fname[0] += ".png"
       self.addRecentFile(fname[0])
       self.filename = fname[0]
       return self.fileSave()
Run Code Online (Sandbox Code Playgroud)

哇,它的作品!但正是因为我正在努力,我才取得任何进展.我尝试运行python解释器并输入:

from PyQt5.QtWidgets import  QFileDialog

help(QFileDialog)
Run Code Online (Sandbox Code Playgroud)

这是(有点)有用,但帮助的语法对我来说没有多大意义,我也看不出getSaveFileName应该返回什么.这有点乏味 - @ $$的东西.

我错过了什么?

python qt pyqt qfiledialog pyqt5

4
推荐指数
2
解决办法
1992
查看次数

文件对话框不能与PyQt5一起使用?

这是我第一次尝试创建GUI.我创建了一个带有按钮的简单程序,该按钮应该打开文件浏览器并返回该文件.我知道PyQt5有一些内置的文件对话框命令,但它们对我不起作用.我试图使用https://pythonspot.com/en/pyqt5-file-dialog/上的教程.我还尝试了其他几种在线方法.我想不出它为什么不起作用的原因.

import sys, os
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QInputDialog, QLineEdit, QFileDialog
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(1082, 800)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(Form)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout.addWidget(self.pushButton)
        self.horizontalLayout_2.addLayout(self.horizontalLayout)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

        self.pushButton.clicked.connect(self.openFile)


    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.pushButton.setText(_translate("Form", "PushButton"))


    # FUNCTION BELOW NOT WORKING
    def openFile(self):   
    options = QFileDialog.Options()
    options |= QFileDialog.DontUseNativeDialog
    fileName, _ = QFileDialog.getOpenFileName(self,"QFileDialog.getOpenFileName()", "","All Files (*);;Python …
Run Code Online (Sandbox Code Playgroud)

python pyqt qt-designer qfiledialog pyqt5

4
推荐指数
1
解决办法
8456
查看次数

如何使用QFileDialog知道要保存的文件类型

关于pyQt4

我更喜欢在QFileDialog中对getSaveFilename使用静态方法,以便用户可以看到Windows/Mac本机对话框.

我的问题是,如果用户没有在保存文件名中键入文件扩展名(比如选择图像类型以保存文件),那么我没有办法检查文件的类型他们想保存为.

如何创建一个用过滤器保存文件的对话框,以及如何知道用户选择的过滤器?

例如:

files_types = "GML (*.gml);;Pickle (*.pickle);;YAML (*.yml)"
file = QtGui.QFileDialog.getSaveFileName(self, 'Save file', '', files_types)
Run Code Online (Sandbox Code Playgroud)

使用var文件我只有文件的路径,但我不确定用户选择的格式是什么.

所以,我想知道如何获得扩展或用户选择的文件类型.是否有使用此方法获取selectedFilter?

非常感谢!

python qt4 pyqt4 qtgui qfiledialog

3
推荐指数
1
解决办法
5772
查看次数

如何让QFileDialog提示覆盖?

我有一个QDialog打开一个QFileDialog,如下所示:

QFileDialog fd(this);
fd.setFileMode(QFileDialog::AnyFile);

if (fd.exec()) {
    // save data to a file
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,默认行为似乎不是那么默认,如果我选择一个已经存在的文件,文件对话框不会提示我覆盖.呼叫setConfirmOverwrite(true)setOption(QFileDialog::DontConfirmOverwrite, false)首先也没有帮助.我在Ubuntu 11.04和Windows XP上都在Qt 4.7.3和4.7.4上测试了这一点.

我环顾四周,发现了这个错误报告. QFileDialog::getSaveFileName()有这个问题,但它是特定于Maemo并在Qt 4.7.3出现之前修好.如果我在我的应用程序中使用该方法它工作得很好,我得到有关覆盖文件的提示.(我不想getSaveFileName()因为无关的原因而使用.)

我找不到任何抱怨这个不适合他们的人.我做错了什么,或者这是一个错误?我想这可能是因为对话框不知道它是否只是一个简单的Open对话框,其中提示没有意义,但我没有看到一种方法告诉它它是一个Save对话框(除了设置confirm-overwrite选项,哪个失败了),文档确实说它应该默认提示.

qt qfiledialog

3
推荐指数
1
解决办法
3354
查看次数

PyQt QFileDialog - 多目录选择

我正在尝试创建一个允许用户选择多个目录的 QFileDialog。

遵循此处的讨论和此处常见问题解答,但我不确定我做错了什么。我得到一个文件对话框,但它仍然只允许我选择一个目录(文件夹)。

这是在 Windows 7 上

代码:

class FileDialog(QtGui.QFileDialog):
        def __init__(self, *args):
            QtGui.QFileDialog.__init__(self, *args)
            self.setOption(self.DontUseNativeDialog, True)
            self.setFileMode(self.DirectoryOnly)

            self.tree = self.findChild(QtGui.QTreeView)
            self.tree.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)

            self.list = self.findChild(QtGui.QListView)
            self.list.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)

if __name__ == '__main__':
    import sys
    app = QtGui.QApplication(sys.argv)
    ex = FileDialog()
    ex.show()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

编辑:

所以在玩了更多之后,如果我在文件对话框中选择“详细信息视图”,多选就可以了。但是,如果我选择“列表视图”,则它不起作用。知道为什么吗?

python qt pyqt qtreeview qfiledialog

3
推荐指数
1
解决办法
2764
查看次数

PyQt - QFileDialog - 直接浏览到一个文件夹?

有没有办法直接浏览到使用QFileDialog的文件夹?

这意味着,不是在导航到目标文件夹时双击每个文件夹,只需在某处输入路径或使用Mac OS X上的Finder中的热键(Shift + Command + G).

谢谢!

编辑:(我的代码)

    filter = "Wav File (*.wav)"
    self._audio_file = QtGui.QFileDialog.getOpenFileName(self, "Audio File",
                                                        "/myfolder/folder", filter)
    self._audio_file = str(self._audio_file)
Run Code Online (Sandbox Code Playgroud)

python qt pyqt qfiledialog

3
推荐指数
3
解决办法
2万
查看次数

无法在 QFileDialog 中为文件添加扩展名

我在使用 QFileDialog 在 PyQt4 中保存带有扩展名的文件(获取文件路径和附加扩展名)时遇到问题。我的 Python 代码如下所示:

dialog = QtGui.QFileDialog()
dialog.setDefaultSuffix(".json")
file = dialog.getSaveFileName(None, "Title", "", "JSON (.json)")
Run Code Online (Sandbox Code Playgroud)

它有效,路径正确,对话框标题和过滤器在对话框窗口中,但第二行被忽略。文件没有任何扩展名。

如何默认添加扩展名?我究竟做错了什么?

python pyqt pyqt4 qfiledialog

2
推荐指数
1
解决办法
4948
查看次数

QFileDialog预览

我试图让 Qt5 QFileDialog 在选择打开图像时显示图像预览。

方法 1:扩展 QFileDialog
我使用了该对话框的实现,它与 Qt 5.6.1 一起使用。

现在我使用 Qt 5.9.2,它不再工作,给出以下错误:

Traceback (most recent call last):
  File "main.py", line 74, in mouseDoubleClickEvent
    self.openFileDialog()
  File "main.py", line 123, in openFileDialog
    openDialog = QFileDialogPreview(self, 'Open file', './', self.getDialogFilter())
  File "QFileDialogPreview.py", line 22, in __init__
    self.layout().addLayout(box, 1, 3, 1, 1)
TypeError: addLayout(self, QLayout, stretch: int = 0): too many arguments
Run Code Online (Sandbox Code Playgroud)

这是翻译后的类。我正在使用Python 3.5.2:

from PyQt5.QtWidgets import QFileDialog, QLabel, QVBoxLayout
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt

class QFileDialogPreview(QFileDialog): …
Run Code Online (Sandbox Code Playgroud)

python pyqt qfiledialog pyqt5

2
推荐指数
1
解决办法
1892
查看次数

标签 统计

qfiledialog ×10

python ×8

pyqt ×6

qt ×5

pyqt5 ×3

pyqt4 ×2

qt4 ×2

qt-designer ×1

qtgui ×1

qtreeview ×1