Qt遍历文件夹下的所有文件再下拉框中显示
工程中应用本地数据一直改变,简单的实现刷新下拉框内容,如有侵权联系删除
.h文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
QStringList getFileNames(const QString &filter, QString defaultDir);
private slots:
void on_commandLinkButton_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
.c文件
#include "widget.h"
#include "ui_widget.h"
#include <QDebug> // 调试输出用到
#include <QMessageBox> // 显示消息框用到
#include <QFile>
#include <QDesktopServices> // 打开链接用到
#include <QApplication>
#include <QUrl> // 打开网页需要
#include <QFileDialog>
#include <QDir> // 获取当前路径 需要
#include <QStringList>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_commandLinkButton_clicked()
{
QString dirpath = "C:/Users/o/Desktop/111";
//设置要遍历的目录
QDir dir(dirpath);
//设置文件过滤器
QStringList nameFilters;
//设置文件过滤格式
nameFilters << "*";
//将过滤后的文件名称存入到files列表中
QStringList fil = dir.entryList(nameFilters, QDir::Files|QDir::Readable, QDir::Name);
for (int i = 0; i < fil.size(); ++i)
ui->comboBox->addItem(fil.at(i));//以文件名的形式添加进下拉框中
//qDebug() << fil.at(i) << Qt::endl;
qDebug()<<"文件"<<fil;
}
运行结果
按按钮
显示结果