#include <QApplication>
#include <QtGui>
#include <QtCore>
{
Q_OBJECT
public:
, list(parent)
{
list->setWindowTitle("QListWidget");
}
public slots:
void updateList(void)
{
QFileSystemModel *model = dynamic_cast<QFileSystemModel *>(sender());
if(model != 0)
{
list->clear();
for(int i = 0; i < model->rowCount(root); i++)
{
item->setData(Qt::DisplayRole, model->fileName(index));
item->setData(Qt::UserRole, model->filePath(index));
list->addItem(item);
}
list->show();
}
}
void saveList(void)
{
QFile file("D:/FileList.csv");
{
for(int i = 0; i < list->count(); i++)
{
file.write(list->model()->index(i, 0).data(Qt::UserRole).toString().toStdString().c_str());
file.write("\n");
}
file.close();
}
}
private:
};
int main(int argc, char *argv[])
{
QFileSystemModel *model = new QFileSystemModel(&view);
view.setModel(model);
view.setRootIndex(model->index("D:/"));
view.show();
Worker *worker = new Worker(&list);
QObject::connect(model,
SIGNAL(directoryLoaded
(QString)), worker,
SLOT(updateList
()));
QObject::connect(model,
SIGNAL(directoryLoaded
(QString)), worker,
SLOT(saveList
()));
model->setRootPath("D:/");
return app.exec();
}
#include "Main.moc"
#include <QApplication>
#include <QtGui>
#include <QtCore>
class Worker : public QObject
{
Q_OBJECT
public:
explicit Worker(QListWidget *parent)
: QObject(parent)
, list(parent)
{
list->setWindowTitle("QListWidget");
}
public slots:
void updateList(void)
{
QFileSystemModel *model = dynamic_cast<QFileSystemModel *>(sender());
QListWidgetItem *item;
if(model != 0)
{
list->clear();
QModelIndex root = model->index(0, 0);
for(int i = 0; i < model->rowCount(root); i++)
{
QModelIndex index = model->index(i, 0, root);
item = new QListWidgetItem;
item->setData(Qt::DisplayRole, model->fileName(index));
item->setData(Qt::UserRole, model->filePath(index));
list->addItem(item);
}
list->show();
}
}
void saveList(void)
{
QFile file("D:/FileList.csv");
if(file.open(QFile::WriteOnly | QFile::Text))
{
for(int i = 0; i < list->count(); i++)
{
file.write(list->model()->index(i, 0).data(Qt::UserRole).toString().toStdString().c_str());
file.write("\n");
}
file.close();
}
}
private:
QListWidget *list;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTreeView view;
QFileSystemModel *model = new QFileSystemModel(&view);
view.setModel(model);
view.setRootIndex(model->index("D:/"));
view.show();
QListWidget list;
Worker *worker = new Worker(&list);
QObject::connect(model, SIGNAL(directoryLoaded(QString)), worker, SLOT(updateList()));
QObject::connect(model, SIGNAL(directoryLoaded(QString)), worker, SLOT(saveList()));
model->setRootPath("D:/");
return app.exec();
}
#include "Main.moc"
To copy to clipboard, switch view to plain text mode
Bookmarks