2012-02-04 5 views

답변

5

당신은 당신이 QtCreator 소스에서 방법을 찾을 수 있습니다, 윈도우 나 맥 OS에서 파일을 선택하려면이 방법을 사용할 수 있습니다.

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'을 한 번 호출하는 것보다 더 좋은 방법이 있습니까? – krlmlr

+1

더 나은 파일을 선택할 수 있기 때문에 openurl 수 없습니다. –

+0

파일 경로에 쉼표가 있으면 Q_OS_WIN 솔루션이 작동하지 않는 것으로 나타났습니다. cmd를 사용하면 따옴표로 파일 경로를 둘러싼 문제를 해결할 수 있지만이 솔루션은 qt에서 작동하지 않습니다. 어떤 생각? – louissmr

0

file:/// 구문을 사용해 보셨습니까? 다음은 내가 함께 일하고 있어요 코드베이스에서 가져온 것입니다 : 당신이 리눅스에 선택하려면

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

예, 파일 관리자 창 (예 : Nemo 또는 Windows 탐색기)에서 디렉토리를 여는 방법입니다. 그러나 문제는 해당 창에서 파일을 선택하는 것이 었습니다. –

관련 문제