Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 用于使用PyQT打开文件/保存文件的简单对话框的函数_Python 3.x_Pyqt5 - Fatal编程技术网

Python 3.x 用于使用PyQT打开文件/保存文件的简单对话框的函数

Python 3.x 用于使用PyQT打开文件/保存文件的简单对话框的函数,python-3.x,pyqt5,Python 3.x,Pyqt5,我现在正在学习pyQT,我想做一些可能不难的事情,但我在互联网上找不到任何令人满意的答案:使用pyQT5创建一个函数,它只从iPython打开Windows或Ubuntu的标准文件对话框并返回文件路径(和文件名) 我在网上找到的教程()中的第一次尝试没有成功。它看起来像: from PyQt5.QtWidgets import (QMainWindow, QTextEdit, QAction, QFileDialog, QApplication) from PyQt5.QtGui im

我现在正在学习pyQT,我想做一些可能不难的事情,但我在互联网上找不到任何令人满意的答案:使用pyQT5创建一个函数,它只从iPython打开Windows或Ubuntu的标准文件对话框并返回文件路径(和文件名)

我在网上找到的教程()中的第一次尝试没有成功。它看起来像:

from PyQt5.QtWidgets import (QMainWindow, QTextEdit, 
    QAction, QFileDialog, QApplication)
from PyQt5.QtGui import QIcon


def test_dialog():
    dlg = QFileDialog()
    dlg.setFileMode(QFileDialog.AnyFile)
    if dlg.exec_():
        filenames = dlg.selectedFiles()
        return filenames


if __name__ == '__main__':
    test_dialog()

我在Python3.7.3和pyQT 5.9.2中使用了最新版本的anaconda发行版。

更改
if uuuu name uuu='uu main uuuuu':test u dialog()
if uu name uuu='u main uuuu=':app=QApplication.instance()如果app没有:app=QApplication([])打印(test u dialog())
谢谢。但现在我又遇到了另一个问题:当我在对话框上点击«取消»时,实例仍在后台,如果不先重新启动ipython,我将无法打开另一个对话框。如何关闭对话框?我建议您阅读:,使用上面的我得到以下奇怪的结果…但我解决了我的问题addind
QTimer.singleShot(100,app.quit)
。最后一个问题:如果我添加
dlg.setFilter(“文本文件(*.txt)”)
,我会收到错误消息TypeError:setFilter(self,Union[QDir.Filters,QDir.Filter]):参数1有意外的类型“str”。使用QTimer.singleShot(…,app.quit)是一个解决方案,但不是正确的解决方案。另一方面,我建议您在实施某些内容之前阅读文档:,