[英]Allow user to select a file or a folder in QFileDialog
在PyQt中,您可以執行以下操作以允許用戶選擇文件
filename = QtGui.QFileDialog.getOpenFileName(self, "Choose file..")
但是我希望打開一個QFileDialog
,用戶可以在其中選擇文件或目錄。 我確定我之前在PyQt應用程序中看過這個功能,但我似乎無法找到任何方法。
從我記得你需要編寫自己的QFileDialog並設置正確的模式 。 我相信這應該是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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.