簡體   English   中英

使用python file_dialog()從Scientific linux訪問Windows上的網絡文件夾共享

[英]Accessing network folders on windows share from Scientific linux using python file_dialog()

抱歉,如果我只是想念這個,但是我似乎找不到解決這個問題的方法。

我已經使用Qt設計器在python 2.7中編寫了一個小程序來處理圖形界面。 我有時會調用file_dialog()以使用OS對話框屏幕找到我希望程序寫入的目錄。 這是出現問題的地方:

我在nautilus中有一個Windows共享驅動器:通過“位置”>“連接到服務器...”可以看到所有通過nautilus到位的文件,以及創建和銷毀文件等,但是從被調用的file_dialog中看不到此位置( )。 我什至無法從命令行中找到網絡共享的安裝位置。

file_dialog是定義的函數:

def file_dialog(self):
    dir_path = QtGui.QFileDialog.getExistingDirectory(self)
    return dir_path

任何幫助將不勝感激,很抱歉,這可能是微不足道的。

非常感謝。

Nautilus使用Gnome VFS(虛擬文件系統)層,因此可以訪問Windows(Samba)共享和其他網絡資源(例如FTP或HTTP / Webdav)以及非“經典文件系統資源”(例如MTP) 此功能由許多用於特定類型資源的插件實現。

Pure Qt本身沒有相應的可移植子系統,但是請參見此答案 如果您可以使用特定於KDE的庫PyKDE ,它們還具有相應的子系統(稱為KIO ),該子系統提供的功能類似於GnomeVFS和Windows本機文件對話框,請參閱此文檔

更新:Windows和MacOSX具有“標准”文件對話框,可能您可以按照上述食譜中的描述使用它們。 在Linux中(更確切地說,在X Window系統中,是典型PC-Linux安裝的圖形部分,例如Ubuntu),根本沒有“系統對話框”,因為每個圖形工具包(Qt,Gtk,Tk,Motif等)都可以使用。 ..)實現自己的一組圖形基元,小部件和對話框。

KDE是基於“ Qt基礎”構建的,因此可以通過KDE特定的庫相對無縫地訪問未在純Qt中實現的功能,這可能是最自然,最快的解決方案。 當然,您將需要在Linux中使用KFileDialog而不是帶有適當標志的QFileDialog,但其余部分:事件傳播系統,窗口小部件樣式等將在Linux專用代碼和“便攜式版本”中共享。

感謝您的幫助,我發現了一個更簡單的解決方法,如果我手動(從終端)將驅動器(使用mount.cifs)安裝到linux系統上的已知文件夾中,則QFileDialog與其交互完全沒有問題。 如果通過GUI安裝驅動器,這只是一個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM