2010-03-10 4 views
3

에서 폴더를 선택 허용 나는 열려면 QFileDialog 싶습니다 그러나 사용자가 파일사용자가 파일 또는 당신이 좋아하는 뭔가를 할 수 PyQt는에서 QFileDialog

filename = QtGui.QFileDialog.getOpenFileName(self, "Choose file..") 

를 선택할 수 있도록 다음과 같은 어떤 사용자에 파일이나 디렉토리를 선택할 수 있습니다. 이전에 PyQt 응용 프로그램에서이 기능을 본 적이 있지만 필자는이를 수행 할 수있는 방법을 찾을 수없는 것 같습니다.

답변

0

내가 기억하는 바로는 당신 자신의 QFileDialog를 작성하고 mode을 올바르게 설정해야합니다. 나는 이것이 QFileDialog.ExistingFile & QFileDialog.Directory이어야한다고 생각합니다.

당신은 (저장소 ++ C에서)을 getExisitingDirectory에 자신의 정적 메소드 내놓고를 작성하려고 할 수 있습니다

QString QFileDialog::getExistingDirectory(QWidget *parent, 
              const QString &caption, 
              const QString &dir, 
              Options options) 
{ 
    if (qt_filedialog_existing_directory_hook && !(options & DontUseNativeDialog)) 
     return qt_filedialog_existing_directory_hook(parent, caption, dir, options); 
    QFileDialogArgs args; 
    args.parent = parent; 
    args.caption = caption; 
    args.directory = QFileDialogPrivate::workingDirectory(dir); 
    args.mode = (options & ShowDirsOnly ? DirectoryOnly : Directory); 
    args.options = options; 

#if defined(Q_WS_WIN) 
    if (qt_use_native_dialogs && !(args.options & DontUseNativeDialog) && (options & ShowDirsOnly) 
#if defined(Q_WS_WINCE) 
     && qt_priv_ptr_valid 
#endif 
     ) { 
     return qt_win_get_existing_directory(args); 
    } 
#endif 

    // create a qt dialog 
    QFileDialog dialog(args); 
    if (dialog.exec() == QDialog::Accepted) { 
     return dialog.selectedFiles().value(0); 
    } 
    return QString(); 
} 
+3

나는이 올바른 생각하지 않는다 - QFileDialog 여러 파일 모드를 허용하지 않습니다. (열거 형 값은 2의 거듭 제곱이 아니기 때문에 알 수 있습니다) – Luke

관련 문제