2015-07-19 42 views
1

「任何現有的代理模型都將被刪除,但不會被刪除。文件對話框將取得proxyModel的所有權。」我是否瞭解QT中「取得所有權」的含義?

這是關於以下方法QT(5.4.0)文件

QFileDialog::​setProxyModel(QAbstractProxyModel * proxyModel) 

這裏,「以proxyModel的所有權」,我的理解是,我不需要刪除proxyModel,QFileDialog實例會將其刪除。我對嗎?

我測試後發現,如果QFileDialog實例不是proxyModel的父類,它將不會刪除proxyModel。所以,我對這個文件有點困惑。也許這是文檔中的錯誤,但我不確定。

+0

在Qt中,如果一個對象「擁有」了另一個對象,它將負責刪除它。看到這個頁面的所有細節:http://doc.qt.io/qt-5/objecttrees.html – MrEricSir

+1

如果模型沒有被刪除,那聽起來像是一個Qt錯誤。 –

回答

3

找到了根本原因,即setProxyModel僅在設置了QFileDialog :: DontUseNativeDialog時才起作用。

相關問題