亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正確打開 Windows 資源管理器到 PyQt 中的特定路徑

正確打開 Windows 資源管理器到 PyQt 中的特定路徑

滄海一幻覺 2023-12-12 10:23:54
我正在嘗試從 PyQt 程序中打開特定文件夾。我知道我可以像這樣使用網絡瀏覽器模塊import webbrowser, ospath="C:/Users"webbrowser.open(os.path.realpath(path))或者我可以像這樣使用 os.startfile 模塊import ospath = "C:/Users"path = os.path.realpath(path)os.startfile(path)或 Qt 平臺上不推薦的子進程。所以我想知道如何在 PyQt 上正確執行此操作(也許使用 QProcess?)。我不想打開文件或文件夾對話框,因為我只想打開該文件夾而不對其進行任何操作。另外,我想為將來在不同于 Windows 的操作系統上進行更新節省時間,因此我不必更改這部分。是否可以?。非常感謝
查看完整描述

2 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

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")


查看完整回答
反對 回復 2023-12-12
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

我設法使用 QProcess 在特定路徑上打開資源管理器,而無需附加模塊(例如網絡瀏覽器)。我只需要平臺模塊來確定程序正在運行哪個平臺,就像這樣


    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)])


查看完整回答
反對 回復 2023-12-12
  • 2 回答
  • 0 關注
  • 250 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號