2010-03-10 50 views
3

在PyQt的一個文件夾,你可以這樣做以下,以允許用戶選擇一個文件允許用戶選擇文件或在QFileDialog

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

但是我想一個QFileDialog打開用戶在其中將能夠選擇文件或目錄。我確信我以前在PyQt應用程序中已經看到過這個功能,但我似乎無法找到任何方法來做到這一點。

回答

0

從我記得你需要寫你自己的QFileDialog並設置適當的mode。我相信這應該是QFileDialog.ExistingFile & QFileDialog.Directory

你可以嘗試寫上getExisitingDirectory自己的靜態方法築底(從C++庫):

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 2011-07-05 15:05:58

相關問題