Listar um conteúdo especifico de uma pasta



  • Pessoal,

    Estou estudando Qt e não estou conseguindo fazer um filtro para um determinado tipo de arquivo.
    O que quero fazer é:

    Dentro da pasta /dev quero listar todos os arquivos que contem tty*. Procurei nos exemplos e consigo listar a raiz com este código:

    QFileSystemModel model;
    model.setRootPath()
    QTreeView tree;
    tree.setModel(&model);



  • lima_will,

    Se vc está usando o "QFileSysteModel":http://doc.qt.digia.com/4.7-snapshot/qfilesystemmodel.html, use o método "setFilter" para configurar o filtro de arquivos.



  • Tio Roy,

    Desculpa minha ignorancia mas como faço isso?



  • lima_will,

    Desculpe, mas o método correto é o setNameFilters:

    @
    QStringList lista;
    lista << ".txt";
    lista << "
    .sh";

    QFileSystemModel model;
    model.setRootPath("/");
    model.setNameFilters(lista);
    

    @



  • Tio Roy,

    Nem precisa pedir desculpa eu que agradeço a ajuda e paciencia em ensinar.

    Não sei o que estou fazendo de errado mas está retornando erro quando tento fazer o código que você passou, fiz assim:

    @#include <QtGui>

    int main(int argc, char *argv[])
    {
    QApplication app(argc, argv);

    QStringList lista;
    lista << "tty";
    
    QFileSystemModel model;
    model.setRootPath("");
    model.setNameFilters(lista);
    
    // Demonstrating look and feel features
    tree.setAnimated(false);
    tree.setIndentation(20);
    tree.setSortingEnabled(true);
    
    tree.setWindowTitle(QObject::tr("Dir View"));
    tree.resize(640, 480);
    tree.show();
    
    return app.exec&#40;&#41;;
    

    }@

    [URL=http://imageshack.us/photo/my-images/341/capturadetelaem20121010.png/][IMG]http://imageshack.us/a/img341/2526/capturadetelaem20121010.png[/IMG][/URL]

    !http://imageshack.us/photo/my-images/341/capturadetelaem20121010.png/()!



  • lima_will,

    Onde vc está criando o "tree"?

    Num programa visual, você não coloca este código no "main" e sim numa classe que herda de Window.

    Como você está iniciando, acredito que seja melhor vc estudar um pouco.

    Dê uma olhada em 2 vídeos postados pelo João Pagotto (que está postado "aqui":http://qt-project.org/groups/qt_brazil/updates#update-1344 no grupo Brazil)



  • O codigo ficaria assim , e pode colocar no proprio main.cpp mesmo ;-P
    @
    #include <QApplication>
    #include <QtGui>
    int main(int argc, char *argv[])
    {
    QApplication app(argc, argv);

    QStringList lista;
    lista << "*.png" <<"*.jpg";
    QTreeView tree;
    QFileSystemModel *model = new QFileSystemModel();
    model->setRootPath("/");
    model->setFilter(QDir::Files);
    model->setNameFilters(lista);
    tree.setModel(model);
    // Demonstrating look and feel features
    tree.setAnimated(false);
    tree.setIndentation(20);
    tree.setSortingEnabled(true);
    
    tree.setWindowTitle(QObject::tr("Dir View"));
    tree.resize(640, 480);
    tree.show();
    
    return app.exec();
    

    }
    @



  • Hehe. Pode mesmo.

    Mas acho este tipo de exemplo leva uma pessoa que está iniciando a tirar conclusões erradas. Sei lá.

    Vi aqui num fórum uma pessoa com um exemplo semelhante, mas com QSocket.... e queria que funcionasse.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.