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
Forum Updated to NodeBB v4.3 + New Features

Key press event to choose list

Scheduled Pinned Locked Moved Solved General and Desktop
qtcreatorqt5.5qt 5.7qkeypressevent
14 Posts 3 Posters 4.4k 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