【发布时间】:2018-07-11 06:12:50
【问题描述】:
我正在尝试列出目录内的所有子目录(从组合框中选择)。现在我可以在组合框中显示目录列表。我想选择其中一个目录并在 textedit 中列出每个子目录(在这个选定的目录内)。 当我从组合框中选择目录时,我不知道如何列出子目录。这是我当前的代码。
QDir directory = QFileDialog::getExistingDirectory(this, tr("Open Directory"),"/home", QFileDialog::ShowDirsOnly| QFileDialog::
DontResolveSymlinks);
ui->comboBox->setMinimumWidth(500);
QStringList files = directory.entryList(QDir::Files);
ui->comboBox->addItems(files);
如果有任何帮助,我将不胜感激。谢谢
【问题讨论】:
-
使用返回所选项目的 currentTextChanged 信号,然后使用 QTextEdit 实现您的逻辑
-
使用
connect(ui->comboBox, &QCombobox::currentTextChanged, ui->textEdit, &QTextEdit::append); -
如何列出所选目录中的子目录?我的意思是在“ui->textEdit, &QTextEdit::append)”中如何从组合框中获取目录以列出子目录。你上面提到的信号和槽是正确的。但是我是初学者,能不能给我一些参考资料?
-
据我所见,QComboBox 有文件名,而不是目录。另一方面,无论它是否是初学者,最好的参考是文档,第二个是 SO,你不认为有人已经想知道如何使用 Qt 获取给定目录的子目录吗?下一个问题与您正在寻找的stackoverflow.com/questions/8052460/… 类似,因此解决方案应该由QDir 类或QDirIterator 类给出,检查那里的一些方法。
-
我得到了答案。