2013-04-24 37 views
9

Tôi không thể thay đổi thư mục hiện tại bằng QFileDialog với Qt 4.8. Cùng một mã hoạt động tốt trên Windows và Mac OS 10.6 Snow Leopard. Nó cũng hoạt động tốt nếu tôi không sử dụng hộp thoại Mac OS X gốc.QFileDialog :: getOpenFileName không đặt thư mục ban đầu trên Mac OS 10.8 Mountain Lion

này hoạt động:

fn=QFileDialog::getOpenFileName(this,"Select File","/Users/myuser/Desktop",QString(),0,QFileDialog::DontUseNativeDialog); 

này không hoạt động:

fn=QFileDialog::getOpenFileName(this,"Select File","/Users/myuser/Desktop"); 

Dường như nếu hầu hết thời gian nó sẽ mở ra con đường cuối cùng của cuộc gọi cuối cùng để getOpenFileName.

Trả lời

5

Đây là lỗi trong Qt được báo cáo cố định trong Qt 5.0.1 và Qt 4.8.4 (mặc dù có vẻ như nó vẫn có thể tái sản xuất trong 4.8.4 bởi mọi người (bao gồm cả tôi)).

Lỗi này đã được báo cáo trong JIRA là QTBUG-20771, QTBUG-28161 và cuối cùng là QTBUG-35779 (dường như cuối cùng đã giải quyết xong vấn đề trong Qt 5.2.1). Đây là liên kết đến bản vá trong Gerrit.

+0

Cảm ơn bạn! Tôi đã tìm kiếm theo dõi lỗi Qt, nhưng không tìm thấy những người 2. –

+0

VẪN có lỗi tương tự ở đây .. trên QT 5.8 – vivi

7

Có cùng vấn đề với Qt5.2.0 trên Mavericks ... Tôi tìm thấy một công việc xung quanh: nối thêm tên tệp giả vào thư mục bạn muốn chọn. Tuy nhiên, hãy chắc chắn không làm điều này trên Windows vì người dùng sẽ thấy nó.

QString dir = "/Users/myuser/Desktop"; 
#if defined(__APPLE__) 
dir += "/MyFile.txt"; 
#endif 
fn = QFileDialog::getOpenFileName(this, "Select File", dir); 

Ngoài ra, đối với những giống tôi mà nhanh chóng một hộp thoại tập tin bởi vì họ cần thêm nhiều lựa chọn bạn cũng có thể làm:

QFileDialog fileDialog(this, "Select File"); 
#if defined(__APPLE__) 
fileDialog.selectFile(dir + "/MyFile.txt"); 
#else 
fileDialog.setDirectory(dir); 
#endif 
... 
+0

vẫn còn lỗi ở đây .. trên QT 5.8 – vivi

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