您可以使用FileSystemModel
的rowsAboutToBeRemoved
信號(繼承自QAbstractItemModel
)。
只要從模型中刪除一行,它就會被觸發。 parent
,start
和end
參數允許您獲取文件名(在子項的第0列中)。
示例代碼:
// once you have your model set up:
...
QObject::connect(model, SIGNAL(rowsAboutToBeRemoved(const QModelIndex&, int, int)),
receiver, SLOT(toBeRemoved(const QModelIndex&, int, int)));
...
// in receiver class:
public slots:
void toBeRemoved(const QModelIndex &parent, int start, int end) {
std::cout << start << " -> " << end << std::endl;
std::cout << parent.child(start, 0).data().typeName() << std::endl;
std::cout << qPrintable(parent.child(start, 0).data().toString()) << std::endl;
}
(使用std ::法院不與Qt的良好實踐,我認爲,這只是讓你開始。)
其他來自QAbstractItemModel的信號可用於發生在文件系統上的其他事件。
來源
2011-08-13 17:49:41
Mat
感謝它的工作!我在參考文獻中介紹了該函數,但是有一些Qt Creator IDE未建議(包括此)的信號(我不知道爲什麼),所以我之前沒有嘗試過。再次感謝。 –