【发布时间】:2020-06-27 02:20:00
【问题描述】:
我熟悉QFileDialog.getExistingDirectory 和QFileDialog.getOpenFileName,但我想要一种方法来单击我的浏览按钮以打开我的文件资源管理器,并返回所选文件夹或文件的路径。
这是一些示例代码。是否可以将两个getSelectedItem() 函数合并到一个方法调用中?
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QFileDialog
class AppDemo(QMainWindow):
def __init__(self):
super().__init__()
self.btn = QPushButton('Browse', self)
self.btn.clicked.connect(lambda: print(self.getSelectedItem()))
def getSelectedItem(self):
self.browseInput = str(QFileDialog.getOpenFileName(self))
print(self.browseInput)
# def getSelectedItem(self):
# self.browseInput = str(QFileDialog.getExistingDirectory(self))
# print(self.browseInput)
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = AppDemo()
demo.show()
sys.exit(app.exec_())
【问题讨论】:
-
“我的文件浏览器”是什么意思?如果您指的是专用程序(如 Total Commander),它可能是可能的,具体取决于程序及其允许此类交互的事实,但如果您指的是操作系统文件浏览器,则可能是更难(甚至不可能,取决于操作系统)。
-
@musicamante 我指的是操作系统文件浏览器。我不确定是否有我遗漏的简单方法,或者是否有可能。
-
在 Windows 和 MacOS 上,您可以将文件浏览器打开到特定路径并自动选择文件(至少在 Windows 上),但这与 PyQt 无关。但是由于您还想取回选定的文件,所以这不是很有用。所以,长话短说,你不能——至少不能以一种好的、简单和可靠的方式。
标签: file browser directory pyqt5