您可以使用FileSystemModel
'rowsAboutToBeRemoved
信号(继承自QAbstractItemModel
)。
每当从模型中删除一行时都会触发它。和参数允许您获取文件名(在子项的第 0 列中parent
)start
。end
示例代码:
// 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;
}
(我认为在 Qt 中使用 std::cout 并不是很好的做法,这只是为了让您入门。)
来自 QAbstractItemModel的其他aboutToBe...
信号可用于文件系统上发生的其他事件。