Qt 从组合框中选择目录,并在文本编辑中列出子目录
我试图列出目录中的所有子目录(从combobox中选择)。现在我可以在组合框中显示目录列表。我想选择其中一个目录,并在textedit中列出每个子目录(在此选定目录内)。 我不知道当我从combobox中选择一个目录时如何列出子目录。这是我当前的代码Qt 从组合框中选择目录,并在文本编辑中列出子目录,qt,qcombobox,Qt,Qcombobox,我试图列出目录中的所有子目录(从combobox中选择)。现在我可以在组合框中显示目录列表。我想选择其中一个目录,并在textedit中列出每个子目录(在此选定目录内)。 我不知道当我从combobox中选择一个目录时如何列出子目录。这是我当前的代码 QDir directory = QFileDialog::getExistingDirectory(this, tr("Open Directory"),"/home", QFileDialog::ShowDirsOnly| QFileDial
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);
我将感谢任何帮助。谢谢,我得到了答案
void Combo_box::on_pushButton_clicked()
{
QDir directory = QFileDialog::getExistingDirectory(this, tr("Open Directory"),"/home",
QFileDialog::ShowDirsOnly| QFileDialog::DontResolveSymlinks);
ui->comboBox->setMinimumWidth(500);
for(const QFileInfo & finfo: directory.entryInfoList()){
ui->comboBox->addItem(finfo.absoluteFilePath());
}
connect(ui->comboBox, &QComboBox::currentTextChanged,[this](const QString &selectedDirectory) {
QDirIterator it(selectedDirectory,QDir::AllEntries | QDir::NoDotAndDotDot, QDirIterator::Subdirectories);
ui->textEdit->clear();
while (it.hasNext()){
ui->textEdit->append(it.next());
}
});
}
使用返回所选项目的currentTextChanged信号,然后使用QTextEdituse
connect(ui->comboBox,&QCombobox::currentTextChanged,ui->textEdit,&QTextEdit::append)实现逻辑代码>如何从所选目录中列出子目录?我的意思是在“ui->textEdit,&QTextEdit::append”中,如何从组合框中获得目录以列出子目录。你上面提到的信号和插槽是正确的。但既然我是初学者,你能给我看一些参考资料吗?据我所见,QComboBox有文件名,而不是目录。另一方面,无论它是否是初学者,最好的参考是文档,第二个是文档,你不认为有人已经想知道如何使用Qt获取给定目录的子目录了吗?下一个问题与您正在寻找的问题类似,因此解决方案应该由QDir类或QDirIterator类给出,检查那里的一些方法。我得到了答案。在for loopOK之外建立连接。我能做到。但我很困惑,把连接放在内环和外环之间有什么区别?\n连接不能验证信号是否曾经连接到插槽,所以在你的情况下,你会调用n倍的lambda函数。啊,我是多么愚蠢,这是基本逻辑。谢谢。:)