【发布时间】:2021-02-14 21:14:07
【问题描述】:
documentation for QFileDialog.getOpenFileName 没有提供关于如何使用const QString &filter = QString() 仅过滤可执行文件的任何线索。这是我使用 PyQt5 操作的代码:
from PyQt5.QtWidgets import QAction, QFileDialog
from PyQt5.QtCore import QDir
from os import path
class OpenSourcePortAction(QAction):
def __init__(self, widget, setSourcePort, config, saveSourcePortPath):
super().__init__('&Open Source Port', widget)
self.widget = widget
self.setShortcut('Ctrl+O')
self.setStatusTip('Select a source port')
self.triggered.connect(self._open)
self.setSourcePort = setSourcePort
self.config = config
self.saveSourcePortPath = saveSourcePortPath
def _open(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
fileName, _ = QFileDialog.getOpenFileName(
self.widget, "Select a source port", self.config.get("sourcePortDir"), "Source Ports (gzdoom zandronum)", options=options)
if fileName:
self.saveSourcePortPath(fileName)
self.setSourcePort(fileName)
在 linux 上,我自然没有可执行文件的文件扩展名,但我需要过滤 windows 上的 .exe 扩展名(我打算为其提供一个版本)。此外,没有允许QDir::Executable 的重载方法。如何在仅过滤可执行文件时使用QFileDialog.getOpenFileName,无论它在哪个平台上运行?
【问题讨论】:
标签: python pyqt pyqt5 qfiledialog