2012-09-01 149 views
2

我想創建一個QFileDialog的子類,它將用於打開只有一些特定內容的目錄。我可以設置自己的代理模型來處理文件列表的行爲,但我怎樣才能禁用/啓用確定按鈕? 我是否必須創建自己的小部件?QFileDialog禁用按鈕

回答

2

您應該可以通過安裝proxy model來根據您的標準過濾文件和目錄。

編輯:

這隻能通過隱藏不需要的文件,對文件的工作。但是你不能隱藏目錄,因爲你需要允許導航進入它們。

對於挑選目錄,您將不得不建立自己的對話框。是的,我認爲這是Qt的一個缺陷。

+0

是,但使用代理模式,我不能啓用/禁用QPushButton。 – Dejwi

+0

是的。請參閱編輯。 –

2

我能做到以下幾點,以獲得「保存」按鈕:

QDialogButtonBox *button_box = findChild<QDialogButtonBox *>(); 
QPushButton *save_button; 

if (button_box) { 
    save_button = button_box->button(QDialogButtonBox::Save); // depends on acceptMode() 
}