在 Firefox 中,如果我下载文件,则会有一个文件夹图标“在文件夹中显示”:
...单击后,将打开下载目录中的本机操作系统文件资源管理器,并选择目标下载文件:
我想要相同类型的功能 - 除了我希望它在 PyQt5 应用程序中,当打开 QFileDialog 时,在选择目标文件时激活的右键单击上下文菜单中选择一个操作;例如使用 PyQt5 示例(如下),我可以得到这个 Qt5 对话框:
...因此,当我右键单击目标文件(如图所示test.txt
)时,我希望在上下文菜单中添加“在文件夹中显示”操作,当选择该操作时,我希望在包含目标文件的目录中打开本机文件资源管理器,并选择目标文件 - 就像 Firefox 所做的那样。
我如何在 PyQt5 中做到这一点?
示例代码:
# started from https://pythonspot.com/pyqt5-file-dialog/
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit, QFileDialog
from PyQt5.QtGui import QIcon
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 file dialogs - pythonspot.com'
self.left = 10
self.top = 10
self.width = 640
self.height = 480
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
self.openFileNameDialog()
self.show()
def openFileNameDialog(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
fileName, _ = QFileDialog.getOpenFileName(self,"QFileDialog.getOpenFileName()", "","Text Files (*.txt)", options=options)
if fileName:
print(fileName)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())