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. Selecting multiple files for reading
QtWS25 Last Chance

Selecting multiple files for reading

Scheduled Pinned Locked Moved Unsolved General and Desktop
qt5.12read all files
23 Posts 5 Posters 6.0k Views
  • 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.
  • D Offline
    D Offline
    deleted286
    wrote on last edited by
    #1

    Hi everyone. I have a code script like:

    QString fileName;
    
        fileName = QFileDialog::getOpenFileName(this, 
            tr("choose"), "up.sakla", tr("choosen(*.up)"));
            
    
        if (fileName.isNull())
            return;
    
        QFile file(fileName);
        file.open(QIODevice::ReadOnly);
        QDataStream in(&file);    // read the data serialized from the file
        QString str;
        qint32 a;
        in >> str >> a;
    

    I want to select multiple files, when theselection windows comes. How can i do it? Is it possible?

    1 Reply Last reply
    0
    • Christian EhrlicherC Offline
      Christian EhrlicherC Offline
      Christian Ehrlicher
      Lifetime Qt Champion
      wrote on last edited by
      #2

      @suslucoder said in Selecting multiple files for reading:

      How can i do it?

      Look at the documentation of QFileDialog::getOpenFileName and you will find a corresponding link to another function the the 'See also' section.

      Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
      Visit the Qt Academy at https://academy.qt.io/catalog

      D 1 Reply Last reply
      3
      • Christian EhrlicherC Christian Ehrlicher

        @suslucoder said in Selecting multiple files for reading:

        How can i do it?

        Look at the documentation of QFileDialog::getOpenFileName and you will find a corresponding link to another function the the 'See also' section.

        D Offline
        D Offline
        deleted286
        wrote on last edited by deleted286
        #3

        @Christian-Ehrlicher I convert my code into

        ```
        QStringList fileName;
        
        fileName = QFileDialog::getOpenFileNames(this,
            tr("choose"), "up.sakla", tr("choosen(*.up)"));
        
        
           if (fileName.isEmpty())
              return;
        
        QFile file(fileName);
        file.open(QIODevice::ReadOnly);
        QDataStream in(&file);    // read the data serialized from the file
        QString str;
        qint32 a;
        in >> str >> a;
        

        but it gives me an error on the line, with saying
        no matching constructor for initialization of QFile

        QFile file(fileName);
        
        JonBJ 1 Reply Last reply
        0
        • D deleted286

          @Christian-Ehrlicher I convert my code into

          ```
          QStringList fileName;
          
          fileName = QFileDialog::getOpenFileNames(this,
              tr("choose"), "up.sakla", tr("choosen(*.up)"));
          
          
             if (fileName.isEmpty())
                return;
          
          QFile file(fileName);
          file.open(QIODevice::ReadOnly);
          QDataStream in(&file);    // read the data serialized from the file
          QString str;
          qint32 a;
          in >> str >> a;
          

          but it gives me an error on the line, with saying
          no matching constructor for initialization of QFile

          QFile file(fileName);
          
          JonBJ Offline
          JonBJ Offline
          JonB
          wrote on last edited by JonB
          #4

          @suslucoder
          Obviously QFile can only handle opening one file at a time! You have to iterate through the list. And please rename your filename to filenames or filenameList for everyone's sanity!

          D 1 Reply Last reply
          3
          • JonBJ JonB

            @suslucoder
            Obviously QFile can only handle opening one file at a time! You have to iterate through the list. And please rename your filename to filenames or filenameList for everyone's sanity!

            D Offline
            D Offline
            deleted286
            wrote on last edited by
            #5

            @JonB said in Selecting multiple files for reading:

            You have to iterate through the list.

            What does it mean?

            JonBJ 1 Reply Last reply
            0
            • D deleted286

              @JonB said in Selecting multiple files for reading:

              You have to iterate through the list.

              What does it mean?

              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by JonB
              #6

              @suslucoder
              You receive a list of filenames. You have to go through one-by-one (that's called "iterating" or "iteration"), one file a time, doing whatever you want to do to each one with QFile. I don't honestly see what else you would expect?!

              D 1 Reply Last reply
              3
              • JonBJ JonB

                @suslucoder
                You receive a list of filenames. You have to go through one-by-one (that's called "iterating" or "iteration"), one file a time, doing whatever you want to do to each one with QFile. I don't honestly see what else you would expect?!

                D Offline
                D Offline
                deleted286
                wrote on last edited by
                #7

                @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

                Christian EhrlicherC jsulmJ JonBJ 3 Replies Last reply
                0
                • D deleted286

                  @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

                  Christian EhrlicherC Offline
                  Christian EhrlicherC Offline
                  Christian Ehrlicher
                  Lifetime Qt Champion
                  wrote on last edited by Christian Ehrlicher
                  #8

                  @suslucoder But even then you should know how to iterate over a container, sorry.

                  https://stackoverflow.com/questions/498455/best-way-to-iterate-through-a-container

                  Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                  Visit the Qt Academy at https://academy.qt.io/catalog

                  D 1 Reply Last reply
                  4
                  • D deleted286

                    @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

                    jsulmJ Offline
                    jsulmJ Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by jsulm
                    #9

                    @suslucoder Well this is Qt forum, not basic programming one. That's why people can give somewhat harsh replies if you ask about basic programming stuff not related to Qt. This is something you should understand.
                    Iterating trough a list is one of the basic programming concepts. You should do some research for such basic stuff at your own before asking here. For example using Google you can find: https://stackoverflow.com/questions/16825376/qt-foreach-loop-ordering-vs-for-loop-for-qlist

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    D 1 Reply Last reply
                    3
                    • D deleted286

                      @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

                      JonBJ Offline
                      JonBJ Offline
                      JonB
                      wrote on last edited by JonB
                      #10

                      @suslucoder said in Selecting multiple files for reading:

                      @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

                      I think I explained it very gently & clearly! And told you what you need to do, and explained what the term "iteration" is. So I'm sorry you feel like that, I believe I am one of the people here who is prepared to explain things the most! :) Maybe, if you can, don't take my words as harsh, because they are not intended like that! I'm a pussy cat really :-;

                      D 2 Replies Last reply
                      0
                      • JonBJ JonB

                        @suslucoder said in Selecting multiple files for reading:

                        @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

                        I think I explained it very gently & clearly! And told you what you need to do, and explained what the term "iteration" is. So I'm sorry you feel like that, I believe I am one of the people here who is prepared to explain things the most! :) Maybe, if you can, don't take my words as harsh, because they are not intended like that! I'm a pussy cat really :-;

                        D Offline
                        D Offline
                        deleted286
                        wrote on last edited by
                        #11

                        @JonB Yes, after seeing the other answers, I understood that you answered my question very kindly. Thank you for your help

                        1 Reply Last reply
                        1
                        • Christian EhrlicherC Christian Ehrlicher

                          @suslucoder But even then you should know how to iterate over a container, sorry.

                          https://stackoverflow.com/questions/498455/best-way-to-iterate-through-a-container

                          D Offline
                          D Offline
                          deleted286
                          wrote on last edited by
                          #12

                          @Christian-Ehrlicher yes I don't know, is it a shame that I don't know?

                          Christian EhrlicherC 1 Reply Last reply
                          0
                          • jsulmJ jsulm

                            @suslucoder Well this is Qt forum, not basic programming one. That's why people can give somewhat harsh replies if you ask about basic programming stuff not related to Qt. This is something you should understand.
                            Iterating trough a list is one of the basic programming concepts. You should do some research for such basic stuff at your own before asking here. For example using Google you can find: https://stackoverflow.com/questions/16825376/qt-foreach-loop-ordering-vs-for-loop-for-qlist

                            D Offline
                            D Offline
                            deleted286
                            wrote on last edited by
                            #13

                            @jsulm Okey.

                            1 Reply Last reply
                            0
                            • D deleted286

                              @Christian-Ehrlicher yes I don't know, is it a shame that I don't know?

                              Christian EhrlicherC Offline
                              Christian EhrlicherC Offline
                              Christian Ehrlicher
                              Lifetime Qt Champion
                              wrote on last edited by
                              #14

                              @suslucoder Please start with basic c and c++ - everything else will not work out properly. And I'm pretty sure so will tell you the same.

                              Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                              Visit the Qt Academy at https://academy.qt.io/catalog

                              1 Reply Last reply
                              1
                              • JonBJ JonB

                                @suslucoder said in Selecting multiple files for reading:

                                @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

                                I think I explained it very gently & clearly! And told you what you need to do, and explained what the term "iteration" is. So I'm sorry you feel like that, I believe I am one of the people here who is prepared to explain things the most! :) Maybe, if you can, don't take my words as harsh, because they are not intended like that! I'm a pussy cat really :-;

                                D Offline
                                D Offline
                                deleted286
                                wrote on last edited by
                                #15

                                @JonB I want to ask you something.

                                I did it in the way you said. Now i can select multiple files.
                                After selecting, i want to do some operations. But my code do it just for one file. The other files are not functional.

                                Is there any way to do it like, do these for every different files.
                                I will share you my iteration, i hope it is correct:

                                Q_UNUSED(b);
                                
                                   QStringList fileNames;
                                
                                   fileNames = QFileDialog::getOpenFileNames(nullptr,
                                                                             ("choose"), "up.sakla", ("choosen(*.up)"));
                                
                                  for (auto xfile : fileNames)
                                  {
                                
                                   QFile file (xfile);
                                   file.open(QIODevice::ReadOnly);
                                   QDataStream in(&file);    // read the data serialized from the file
                                   QString str;
                                   qint32 a;
                                     qDebug() << str << a;
                                   in >> str >> a;
                                
                                jsulmJ 1 Reply Last reply
                                0
                                • D deleted286

                                  @JonB I want to ask you something.

                                  I did it in the way you said. Now i can select multiple files.
                                  After selecting, i want to do some operations. But my code do it just for one file. The other files are not functional.

                                  Is there any way to do it like, do these for every different files.
                                  I will share you my iteration, i hope it is correct:

                                  Q_UNUSED(b);
                                  
                                     QStringList fileNames;
                                  
                                     fileNames = QFileDialog::getOpenFileNames(nullptr,
                                                                               ("choose"), "up.sakla", ("choosen(*.up)"));
                                  
                                    for (auto xfile : fileNames)
                                    {
                                  
                                     QFile file (xfile);
                                     file.open(QIODevice::ReadOnly);
                                     QDataStream in(&file);    // read the data serialized from the file
                                     QString str;
                                     qint32 a;
                                       qDebug() << str << a;
                                     in >> str >> a;
                                  
                                  jsulmJ Offline
                                  jsulmJ Offline
                                  jsulm
                                  Lifetime Qt Champion
                                  wrote on last edited by jsulm
                                  #16

                                  @suslucoder So, did you select more than one file? How many entries do you have in fileNames? Did you use debugger to see what happens?
                                  Add

                                  for (auto xfile : fileNames)
                                  {
                                      qDebug() << xfile;
                                  

                                  to see what happens. There are so many things you can do to find out what happens...

                                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                                  D 1 Reply Last reply
                                  0
                                  • jsulmJ jsulm

                                    @suslucoder So, did you select more than one file? How many entries do you have in fileNames? Did you use debugger to see what happens?
                                    Add

                                    for (auto xfile : fileNames)
                                    {
                                        qDebug() << xfile;
                                    

                                    to see what happens. There are so many things you can do to find out what happens...

                                    D Offline
                                    D Offline
                                    deleted286
                                    wrote on last edited by deleted286
                                    #17

                                    @jsulm said in Selecting multiple files for reading:

                                    qDebug() << xfile;

                                    Yes i select and i can see them. I want to do such a thing:

                                    do some operation
                                    for every file that i select

                                    jsulmJ J.HilkJ 2 Replies Last reply
                                    0
                                    • D deleted286

                                      @jsulm said in Selecting multiple files for reading:

                                      qDebug() << xfile;

                                      Yes i select and i can see them. I want to do such a thing:

                                      do some operation
                                      for every file that i select

                                      jsulmJ Offline
                                      jsulmJ Offline
                                      jsulm
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #18

                                      @suslucoder What do you think you print out to qDebug here:

                                      QString str;
                                      qint32 a;
                                      qDebug() << str << a;
                                      in >> str >> a;
                                      

                                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                                      D 1 Reply Last reply
                                      0
                                      • jsulmJ jsulm

                                        @suslucoder What do you think you print out to qDebug here:

                                        QString str;
                                        qint32 a;
                                        qDebug() << str << a;
                                        in >> str >> a;
                                        
                                        D Offline
                                        D Offline
                                        deleted286
                                        wrote on last edited by
                                        #19

                                        @jsulm I wrote it for see the content of my file. Im asking another thing..

                                        jsulmJ 1 Reply Last reply
                                        0
                                        • D deleted286

                                          @jsulm I wrote it for see the content of my file. Im asking another thing..

                                          jsulmJ Offline
                                          jsulmJ Offline
                                          jsulm
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #20

                                          @suslucoder Do you really think the order of the two last lines is correct?

                                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                                          D 1 Reply Last reply
                                          1

                                          • Login

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