Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Filter filename in QDialog
Forum Updated to NodeBB v4.3 + New Features

Filter filename in QDialog

Scheduled Pinned Locked Moved General and Desktop
14 Posts 5 Posters 6.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    broadpeak
    wrote on last edited by
    #5

    [quote author="Peggy" date="1350649293"]
    dialog.setFilters(lst);
    [/quote]

    I think, setNameFilters will be your friend (and not the setFilters!)

    1 Reply Last reply
    0
    • G Offline
      G Offline
      gRicky
      wrote on last edited by
      #6

      I think it too.

      1 Reply Last reply
      0
      • P Offline
        P Offline
        Peggy
        wrote on last edited by
        #7

        I tried setNameFilters and the tip from gRicky. It does not work as I want. It showed all the files in the directory which I don't want.

        1 Reply Last reply
        0
        • K Offline
          K Offline
          KA51O
          wrote on last edited by
          #8

          How about you show us your new code?

          1 Reply Last reply
          0
          • P Offline
            P Offline
            Peggy
            wrote on last edited by
            #9

            Here is my code:
            @
            QFileDialog* dialog = new QFileDialog;
            QStringList dbLst;
            dbLst<<"project1"<<"project2";
            for (QStringList::iterator it = dbLst.begin();it != dbLst.end(); it++){
            QString str = it;
            }
            dialog->setFilters(QStringList()<< "
            .cst");
            dialog->setDirectory(QDir("Template").absolutePath());
            dialog>exec();

            @

            I used the Iterator to see the content of my list,which of course is in this example is not useful.

            1 Reply Last reply
            0
            • K Offline
              K Offline
              KA51O
              wrote on last edited by
              #10

              @
              QFileDialog* dialog = new QFileDialog;
              QStringList dbLst;
              dbLst<<"project1"<<"project2";

              // whats this for-loop for ?

                  for (QStringList::iterator it = dbLst.begin();it != dbLst.end(); it++){
                      QString str = *it;
                  }
              

              //you are not using setNameFilters and also you are handing over a stringlist containing only ".cst" as the parameter. I thought you were looking for names containing "project1" or "project2".
              dialog->setFilters(QStringList()<< "
              .cst");
              dialog->setDirectory(QDir("Template").absolutePath());
              dialog>exec();

              @

              Please have a look at "the documentation":http://qt-project.org/doc/qt-4.8/qfiledialog.html#setNameFilters and think about want you want to achieve before wildly copying code together.

              1 Reply Last reply
              0
              • P Offline
                P Offline
                Peggy
                wrote on last edited by
                #11

                I think what I am looking for is hardly being solved by setting filter(at least I can not solve it with filter). I will write an extra class with inherits QDialog and try to write some methods to solve my problem.

                Thank you all for taking your time to help me:)

                1 Reply Last reply
                0
                • P Offline
                  P Offline
                  Peggy
                  wrote on last edited by
                  #12

                  Hello KA510,

                  You are right with *.cst(my fault). But it does not filter the name I am looking for it either. I may understand the filter in qt not correctly. By clicking on open menu, I was looking for to have a list of files which were filtered according to the existing list in database. So if I have 4 files in the directory which only two of them existed in database I wanted to show just this two files except the 4 files.

                  1 Reply Last reply
                  0
                  • B Offline
                    B Offline
                    butterface
                    wrote on last edited by
                    #13

                    Try this one

                    @
                    QFileDialog* dialog = new QFileDialog;
                    QStringList dbLst;
                    dbLst<<"(project1.cst)"<<"(project2.cst)";
                    dialog->setFilters(dbLst);
                    dialog->setDirectory(QDir("Template").absolutePath());
                    dialog->exec();
                    @

                    EDIT
                    or maybe you need this
                    @
                    QFileDialog* dialog = new QFileDialog;
                    dialog->setNameFilter(QString("My Files (project1.cst project2.cst)"));
                    dialog->setDirectory(QDir("Template").absolutePath());
                    dialog->exec();
                    @

                    1 Reply Last reply
                    0
                    • B Offline
                      B Offline
                      butterface
                      wrote on last edited by
                      #14

                      AFAIK and without RTFM the name of the actual file (project1.cst) or the pattern (*.exe) must be enclosed by brackets.

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved