如何解决在PyQt中正确打开Windows资源管理器到特定路径
我正在尝试从我的PyQt程序中打开特定的文件夹。我知道我可以使用网络浏览器模块 像这样
import webbrowser,os
path="C:/Users"
webbrowser.open(os.path.realpath(path))
或者我可以像这样使用os.startfile模块
import os
path = "C:/Users"
path = os.path.realpath(path)
os.startfile(path)
在Qt平台上不推荐的或子进程。因此,我想知道如何才能在PyQt上正确执行此操作(也许使用QProcess?)。我不想打开文件或文件夹对话框,因为我只想不做任何事就打开文件夹。另外,我想节省时间,以便将来在不同于Windows的操作系统上进行更新,因此我不必更改此部分。可能吗?。非常感谢
解决方法
Qt跨平台解决方案是使用QDesktopServices::openUrl()
:
import os
import sys
from PyQt5 import QtCore,QtGui,QtWidgets
app = QtWidgets.QApplication(sys.argv)
path = "C:/Users"
fullpath = os.path.realpath(path)
if not QtGui.QDesktopServices.openUrl(QtCore.QUrl.fromLocalFile(fullpath)):
print("failed")
,
我设法使用QProcess在没有附加模块(例如webbrowser)的特定路径上打开资源管理器。我只需要平台模块来确定程序在哪个平台上运行,就像这样
self.path = os.path.abspath(os.path.dirname(sys.argv[0]))
self.pathOutput = os.path.join(self.path,"output")
def open_explorer(self):
self._process = QtCore.QProcess(self)
if platform.system() == "Windows":
self._process.start("explorer",[os.path.realpath(self.pathOutput)])
elif platform.system() == "Darwin":
self._process.start("open",[os.path.realpath(self.pathOutput)])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。