2009-10-22 24 views
22

Tôi có một hộp thoại mở tập với ba bộ lọc:Làm cách nào để đặt bộ lọc đã chọn trên QFileDialog?

QString fileName = QFileDialog::getOpenFileName(
     this, 
     title, 
     directory, 
     tr("JPEG (*.jpg *.jpeg);; TIFF (*.tif);; All files (*.*)") 
); 

này sẽ hiển thị một hộp thoại với "JPEG" chọn là bộ lọc mặc định. Tôi muốn đặt danh sách bộ lọc theo thứ tự bảng chữ cái để "Tất cả các tệp" đầu tiên trong danh sách. Tuy nhiên, nếu tôi làm điều này, "Tất cả các tệp" là bộ lọc được chọn mặc định - mà tôi không muốn.

Tôi có thể đặt bộ lọc được chọn mặc định cho hộp thoại này hay tôi phải đi với bộ lọc được chỉ định đầu tiên?

Tôi đã cố gắng chỉ định đối số thứ 5 (QString) để đặt bộ lọc được chọn mặc định nhưng điều này không hoạt động. Tôi nghĩ rằng điều này chỉ có thể được sử dụng để truy xuất bộ lọc do người dùng đặt.

Trả lời

36

Như thế này:

QString selfilter = tr("JPEG (*.jpg *.jpeg)"); 
QString fileName = QFileDialog::getOpenFileName(
     this, 
     title, 
     directory, 
     tr("All files (*.*);;JPEG (*.jpg *.jpeg);;TIFF (*.tif)"), 
     &selfilter 
); 

Tôi tán rằng các tài liệu (https://doc.qt.io/qt-4.8/qfiledialog.html#getOpenFileName) là một chút mơ hồ về điểm này nhưng nó chỉ đưa tôi một cố gắng đoán làm thế nào để làm điều này đúng.

Đây là một trong những trường hợp bạn thử dùng nó nhanh hơn là đặt câu hỏi.

+0

Cảm ơn, tôi đã thử nội tuyến số 5 arg –

+4

Nghiêm túc, không cần phải khắc nghiệt ... – DawidPi

Các vấn đề liên quan