Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 从组合框中选择目录,并在文本编辑中列出子目录_Qt_Qcombobox - Fatal编程技术网

Qt 从组合框中选择目录,并在文本编辑中列出子目录

Qt 从组合框中选择目录,并在文本编辑中列出子目录,qt,qcombobox,Qt,Qcombobox,我试图列出目录中的所有子目录(从combobox中选择)。现在我可以在组合框中显示目录列表。我想选择其中一个目录,并在textedit中列出每个子目录(在此选定目录内)。 我不知道当我从combobox中选择一个目录时如何列出子目录。这是我当前的代码 QDir directory = QFileDialog::getExistingDirectory(this, tr("Open Directory"),"/home", QFileDialog::ShowDirsOnly| QFileDial

我试图列出目录中的所有子目录(从combobox中选择)。现在我可以在组合框中显示目录列表。我想选择其中一个目录,并在textedit中列出每个子目录(在此选定目录内)。 我不知道当我从combobox中选择一个目录时如何列出子目录。这是我当前的代码

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函数。啊,我是多么愚蠢,这是基本逻辑。谢谢。:)