如何在pyside中定义QtGui.QFileDialog.getOpenFileName的QDir

How to define a QDir in pyside for QtGui.QFileDialog.getOpenFileName?

本文关键字:QFileDialog getOpenFileName QDir QtGui 定义 pyside      更新时间:2023-10-16

我想使用

打开一个文件对话框
fileName = QtGui.QFileDialog.getOpenFileName(self, "Open File", QtCore.QDir("/home/user"))

,但是这个表达式给出了以下错误:

TypeError: 'PySide.QtGui.QFileDialog.getOpenFileName' called with wrong argument types:
  PySide.QtGui.QFileDialog.getOpenFileName(ImageViewer, str, PySide.QtCore.QDir)
Supported signatures:
  PySide.QtGui.QFileDialog.getOpenFileName(PySide.QtGui.QWidget = None, unicode = QString(), unicode = QString(), unicode = QString(), PySide.QtCore.QString = QString(), PySide.QtGui.QFileDialog.Options = 0)

文档在这里是无用的,因为文档只突出存在于Qt的c++(也许有一些隐藏的pyside文档…?)。由于c++和python之间的数据类型略有不同,我无法解决我的问题。

有什么建议吗?

http://pyside.github。io/docs/pyside/Documentation for pyside .

查看静态函数部分。http://pyside.github.io/docs/pyside/PySide/QtGui/QFileDialog.html

parent = None # QtGui.QMainWindow()
filters = "All File (*);;CSV (*.csv *.CSV)" # Only allow these file ext to be opened
title = "Save As"
open_at = "directory/"
results = QtGui.QFileDialog.getOpenFileName(parent, title, open_at, filters)

QtCore。QDir是一个对象。它需要unicode/str,所以使用"/home/user"。

"/home/user"
or
QtCore.QDir("/home/user").absolutePath() # This ensures that the given location exists.