0

申し訳ありませんが、これを見逃していた場合は、この問題の解決策が見つからないようです。

Qtデザイナーを使用してPython 2.7で小さなプログラムを作成し、グラフィカルインターフェイスを処理しました。ある時点で file_dialog() を呼び出して、OS ダイアログ画面を使用して、プログラムに書き込みたいディレクトリを見つけます。ここで問題が発生します。

私はnautilusで利用可能なWindows共有ドライブを持っています:Places>Connect to serverからアクセスします...nautilusを介してすべてのファイルを配置し、ファイルを作成および破棄することができますが、この場所は呼び出されたfile_dialog( ) パイソンから。ネットワーク共有がマウントされている場所をコマンドラインから見つけることさえできません。

file_dialog は定義済み関数です。

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

どんな助けでも大歓迎です。これはおそらく些細なことで申し訳ありません。

よろしくお願いします。

4

2 に答える 2

0

Nautilus は Gnome VFS (仮想ファイルシステム) レイヤーを使用するため、Windows (Samba) 共有や、FTP や HTTP/Webdav などの他のネットワーク リソース、およびMTPなどの非「従来のファイル システム リソース」にアクセスできます。この機能は、特定のタイプのリソースごとに多数のプラグインとして実装されています。

Pure Qt 自体には、対応するポータブルサブシステムはありませんが、この回答を参照してください。KDE 固有のライブラリPyKDEを使用できる場合、対応するサブシステム ( KIOと呼ばれる) もあり、GnomeVFS および Windows ネイティブ ファイル ダイアログと同様の機能を提供します。このドキュメントを参照してください。

更新: Windows と MacOSX には「標準」のファイル ダイアログがあり、前述のレシピで説明されているようにそれらを使用する可能性があります。Linux (より正確には、Ubuntu などの典型的な PC-Linux インストールのグラフィカルな部分である X Window System) では、すべてのグラフィカル ツールキット (Qt、Gtk、Tk、Motif、. ..) 独自のグラフィック プリミティブ、ウィジェット、およびダイアログのセットを実装します。

KDE は「Qt 基盤」の上に構築されているため、純粋な Qt に実装されていない機能は、KDE ​​固有のライブラリを介して比較的シームレスにアクセスできます。これが最も自然で高速なソリューションになる可能性があります。確かに、適切なフラグを指定して QFileDialog の代わりに Linux で KFileDialog を使用する必要がありますが、残りのイベント伝播システム、ウィジェット スタイルなどは、Linux 固有のコードと「ポータブル バージョン」の両方で共有されます。

于 2015-01-09T09:09:15.393 に答える
0

助けてくれてありがとう、手動で (ターミナルから) ドライブを (mount.cifs を使用して) Linux システムの既知のフォルダーにマウントすると、QFileDialog は問題なく操作できます。ドライブが GUI を介してマウントされている場合にのみ問題になります。

于 2015-01-13T11:05:47.370 に答える