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. Key press event to choose list

Key press event to choose list

Scheduled Pinned Locked Moved Solved General and Desktop
qtcreatorqt5.5qt 5.7qkeypressevent
14 Posts 3 Posters 5.5k Views 2 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.
  • jsulmJ jsulm

    @Kinesis Can't you just use http://doc.qt.io/qt-5/qlistwidget.html#currentRowChanged ?

    K Offline
    K Offline
    Kinesis
    wrote on last edited by
    #5

    @jsulm
    Well , as you said I tried to use currentRow Changed , but I need to take the text from current row , to get directory path. How can I get the text from current row.There may be some mistakes in my code.Take a look please.

    connect(listWidget_dirList, & QListWidget::currentRowChanged,[directory,listWidget_main,this](int currentRow)
            {
                listWidget_main->show();
                listWidget_main->clear();
                // QDir directory(item->text());
                QDir dir = directory.absolutePath() + '/' + currentRow->text();
                dir.setNameFilters({"*.png", "*.jpg"});
    
                for(const QFileInfo & finfo: dir.entryInfoList()){
          ----------------
          ----------------
          ----------------
    }
    });
    
    jsulmJ SGaistS 2 Replies Last reply
    0
    • K Kinesis

      @jsulm
      Well , as you said I tried to use currentRow Changed , but I need to take the text from current row , to get directory path. How can I get the text from current row.There may be some mistakes in my code.Take a look please.

      connect(listWidget_dirList, & QListWidget::currentRowChanged,[directory,listWidget_main,this](int currentRow)
              {
                  listWidget_main->show();
                  listWidget_main->clear();
                  // QDir directory(item->text());
                  QDir dir = directory.absolutePath() + '/' + currentRow->text();
                  dir.setNameFilters({"*.png", "*.jpg"});
      
                  for(const QFileInfo & finfo: dir.entryInfoList()){
            ----------------
            ----------------
            ----------------
      }
      });
      
      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by jsulm
      #6

      @Kinesis As you can see currentRow is an integer - you can't call any methods on it, right?
      If you check the documentation you will find this: http://doc.qt.io/qt-5/qlistwidget.html#item

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

      K 1 Reply Last reply
      1
      • jsulmJ jsulm

        @Kinesis As you can see currentRow is an integer - you can't call any methods on it, right?
        If you check the documentation you will find this: http://doc.qt.io/qt-5/qlistwidget.html#item

        K Offline
        K Offline
        Kinesis
        wrote on last edited by Kinesis
        #7

        @jsulm
        So how can I get the text from selected directroy ? Is there another method to get the text ? I think I can use "QListWidget::itemSelectionChanged()". But if I use that how can I get the text(directory path)?

        jsulmJ 1 Reply Last reply
        0
        • K Kinesis

          @jsulm
          So how can I get the text from selected directroy ? Is there another method to get the text ? I think I can use "QListWidget::itemSelectionChanged()". But if I use that how can I get the text(directory path)?

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

          @Kinesis I already suggested what to do to get the text. Did you read it? Again: you can get the current item using currentRow and http://doc.qt.io/qt-5/qlistwidget.html#item, then you simply call http://doc.qt.io/qt-5/qlistwidgetitem.html#text on the item to get the text.

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

          K 1 Reply Last reply
          1
          • jsulmJ jsulm

            @Kinesis I already suggested what to do to get the text. Did you read it? Again: you can get the current item using currentRow and http://doc.qt.io/qt-5/qlistwidget.html#item, then you simply call http://doc.qt.io/qt-5/qlistwidgetitem.html#text on the item to get the text.

            K Offline
            K Offline
            Kinesis
            wrote on last edited by
            #9

            @jsulm
            I tried to get the current row with "QListWidgetItem *item(int row)" and call"item->text()" on the item to get the text . It still doesn't work.But I dont't know where I made mistake.

            jsulmJ 1 Reply Last reply
            0
            • K Kinesis

              @jsulm
              Well , as you said I tried to use currentRow Changed , but I need to take the text from current row , to get directory path. How can I get the text from current row.There may be some mistakes in my code.Take a look please.

              connect(listWidget_dirList, & QListWidget::currentRowChanged,[directory,listWidget_main,this](int currentRow)
                      {
                          listWidget_main->show();
                          listWidget_main->clear();
                          // QDir directory(item->text());
                          QDir dir = directory.absolutePath() + '/' + currentRow->text();
                          dir.setNameFilters({"*.png", "*.jpg"});
              
                          for(const QFileInfo & finfo: dir.entryInfoList()){
                    ----------------
                    ----------------
                    ----------------
              }
              });
              
              SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #10

              Hi,

              @Kinesis said in Key press event to choose list:

              listWidget_main->show();
              listWidget_main->clear();

              Aren't you emptying the content of your listWidget before getting the value you are interested in ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              K 1 Reply Last reply
              0
              • SGaistS SGaist

                Hi,

                @Kinesis said in Key press event to choose list:

                listWidget_main->show();
                listWidget_main->clear();

                Aren't you emptying the content of your listWidget before getting the value you are interested in ?

                K Offline
                K Offline
                Kinesis
                wrote on last edited by
                #11

                @SGaist
                Yes , I first clear the widget and show items from other dirs. If I don't clear the widget , that's still fine. I just want to test it clearly.

                1 Reply Last reply
                0
                • K Kinesis

                  @jsulm
                  I tried to get the current row with "QListWidgetItem *item(int row)" and call"item->text()" on the item to get the text . It still doesn't work.But I dont't know where I made mistake.

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

                  @Kinesis said in Key press event to choose list:

                  QListWidgetItem *item(int row)

                  connect(listWidget_dirList, & QListWidget::currentRowChanged,[directory,listWidget_main,this](int currentRow)
                  {
                      listWidget_main->show();
                      listWidget_main->clear();
                  
                      QListWidgetItem *item = listWidget_dirList->item(currentRow);
                      if (item)  {
                          QString text = item->text();
                          ...
                      }
                  

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

                  K 1 Reply Last reply
                  1
                  • jsulmJ jsulm

                    @Kinesis said in Key press event to choose list:

                    QListWidgetItem *item(int row)

                    connect(listWidget_dirList, & QListWidget::currentRowChanged,[directory,listWidget_main,this](int currentRow)
                    {
                        listWidget_main->show();
                        listWidget_main->clear();
                    
                        QListWidgetItem *item = listWidget_dirList->item(currentRow);
                        if (item)  {
                            QString text = item->text();
                            ...
                        }
                    
                    K Offline
                    K Offline
                    Kinesis
                    wrote on last edited by
                    #13

                    @jsulm
                    I am really sorry . I misunderstood your explanation . Now it works . Thanks

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #14

                      My bad, I misread from where the signal came from.

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      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