2012-02-04 21 views

答えて

5

:以下は、私が働いているコードベースから取得されます。

void select(const QString& path){ 
#if defined(Q_OS_WIN) 
    const QString explorer = "explorer"; 
     QStringList param; 
     if (!QFileInfo(path).isDir()) 
      param << QLatin1String("/select,"); 
     param << QDir::toNativeSeparators(path); 
     QProcess::startDetached(explorer, param); 
#elif defined(Q_OS_MAC) 
    QStringList scriptArgs; 
     scriptArgs << QLatin1String("-e") 
        << QString::fromLatin1("tell application \"Finder\" to reveal POSIX file \"%1\"") 
             .arg(path); 
     QProcess::execute(QLatin1String("/usr/bin/osascript"), scriptArgs); 
     scriptArgs.clear(); 
     scriptArgs << QLatin1String("-e") 
        << QLatin1String("tell application \"Finder\" to activate"); 
     QProcess::execute("/usr/bin/osascript", scriptArgs); 
+0

これは 'openUrl'の1回の呼び出しよりも優れていますか? – krlmlr

+1

それはファイルを選択することができ、openurlはできません。 –

+0

ファイルパスにカンマがあると、Q_OS_WINソリューションが動作しないことがわかりました。 cmdを使用すると、ファイルパスを囲む問題を引用符で修正できますが、この解決法はqtでは機能しません。何か案が? – louissmr

0

file:///構文を試しましたか?あなたがLinux上で選択したい場合は、QtCreator源に方法を見つけることができ、WindowsやMacOSの上のファイルを選択するには、このメソッドを使用することができます

PyQt4.QtGui.QDesktopServices.openUrl(PyQt4.QtCore.QUrl('file:///%s' % dirname)) 
+0

はい、これは、ファイルマネージャウィンドウ(NemoやWindowsエクスプローラなど)でディレクトリを開く方法です。しかし、問題は、そのウィンドウ内のファイルを選択することでした。 –

関連する問題