我想构建一个类似于QFileDialog::getExistingDirectory()的对话框,仅当所选目录包含某些文件时才启用 OK 按钮。
我知道我不能用QFileDialog来实现这一点,而是我必须想出我自己的 QDialog ,它有一个QTreeView耦合到一个QFileSystemModel。
- 如何将QTreeView限制为目录?
- 如何获取当前选择的目录,以便检查它是否包含一些文件名?
我想构建一个类似于QFileDialog::getExistingDirectory()的对话框,仅当所选目录包含某些文件时才启用 OK 按钮。
我知道我不能用QFileDialog来实现这一点,而是我必须想出我自己的 QDialog ,它有一个QTreeView耦合到一个QFileSystemModel。
这是一个例子:
void slotDirectorySelected( const QModelIndex & index )
{
QFileInfo info = fileSystemModel->fileInfo( index );
QDir selectedDir = info.dir();
foreach( const QString entry, selectedDir.entryList() ) {
// do something with the entry
}
}