我正在使用 Qt 4.8 并尝试创建一个显示一个或多个目录树的 GUI。我在文档中读到QFileSystemModel
使用单独的线程。我试过这个:
QFileSystemModel *model = new QFileSystemModel;
model->setRootPath("C:/");
connect(model, SIGNAL(directoryLoaded(QString)), this, SLOT(alertLoaded(QString)));
ui->treeViewFolders->setModel(model);
此处alertLoaded
仅在加载目录时显示消息对话框。因此,如果我有权利,当我试图在树中打开一个新的目录分支时,它必须在后台加载目录的项目,以便 UI 在此过程中不会冻结。
但问题是它似乎不是这样的。当我试图打开一个包含 1000 个或更多文件的目录(例如 system32)时,它会冻结几秒钟。显然,图标正在减慢加载速度,但如果模型使用单独的线程,为什么它会冻结?
问题:
我如何告诉模型,我真的想使用单独的线程或者我不想等待另一个线程?