2010-10-15 51 views
46

Các "Browse For Folder" hộp thoại Windows là rất bất tiện vì:hộp thoại Open File có thể được sử dụng để chọn một Thư mục không?

  • nó không có hộp Đường dẫn nơi tôi có thể dán đường dẫn Tôi muốn (ví dụ từ Total Commander)
  • nó luôn bắt đầu từ Desktop với mọi thứ đã đóng

Có cách nào để sử dụng hộp thoại "Tệp Mở" (tốt hơn nhiều) để chọn Thư mục không? Một số cờ hoặc tùy chọn hoặc một cái gì đó?

Bối cảnh: số calibre eLibrary manager được viết bằng Python và Qt.

Nó hiện đang hiển thị ở bên trái. Tôi muốn nó hiển thị như trên quyền BrowserFileDialog

hoặc thậm chí tốt hơn, như hộp thoại File Open: OpenFileDialog

+0

Tôi cũng ghét mà bạn không thể sử dụng các phím tắt trong "duyệt thư mục" hộp thoại. Tại sao họ không sửa nó? – cyco130

Trả lời

19

Bạn có thể thiết lập các chế độ tập tin trong QFileDialog-QFileDialog::Directory

thấy http://qt-project.org/doc/qt-5.0/qtwidgets/qfiledialog.html#FileMode-enum

Hoặc Bạn có thể sử dụng QFileDialog::setOption với giá trị QFileDialog::ShowDirsOnly

+0

[code] (http://bazaar.launchpad.net/~kovid/calibre/trunk/annotate/head%3A/src/calibre/gui2/__init__.py#L518) sử dụng QFileDialog.getExistingDirectory (QFileDialog.Directory) và điều này sẽ hiển thị hộp thoại "Duyệt Thư mục" bất tiện. –

+0

Tôi có nên sử dụng một cái gì đó như thế này? dialog = new QFileDialog(); dialog.setOption (QFileDialog.ShowDirsOnly, true); dialog.getOpenFileName (QFileDialog.Directory); –

+0

QFileDialog :: DirectoryOnly đã lỗi thời kể từ khi Qt 4.5: Thử sử dụng setOption() – Ranjith

56

Bạn có thể thử cái này:

QString QFileDialog::getExistingDirectory (QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), Options options = ShowDirsOnly) [static] 

Cái này được dùng để chọn thư mục và sẽ bật lên hộp thoại như bạn hiển thị lúc trước.

Demo:

QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"), 
              "/home", 
              QFileDialog::ShowDirsOnly 
              | QFileDialog::DontResolveSymlinks); 
Các vấn đề liên quan