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

Combobox in Qtableview

Scheduled Pinned Locked Moved Solved General and Desktop
47 Posts 6 Posters 10.2k Views 3 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.
  • N n-2204

    @JonB

    Have another loop/iterator through all the items which are in the combo box and remove any which are not in the guess list now

    I tired this but not working correctly.. now if item in guesslist then also it got removed ???

     QStringList itemsInComboBox;
         for (int index = 0; index < guesslist.count(); ++index) {  //check in list
            for (int item = 0; item < combo->count(); ++item) {  //check in combobox
                itemsInComboBox << combo->itemText(item);
                qDebug() << "before remove " << itemsInComboBox;
                          if ( guesslist[index] != itemsInComboBox[item]  )
                          combo->removeItem(item);
                }
            }
    
    N Offline
    N Offline
    n-2204
    wrote on last edited by
    #41

    Hi,
    adding those that appear in guesslist code-

    for (int i = 0; i < guesslist.count(); i++) 
        {
            if (combo->findText(guesslist[i]) != -1)//-1 means "not found"
            { 
                continue;
            }
            else {
                combo->addItem(guesslist[i]); //Add to QCombobox
            }
    

    ///remove which are not in the guess list code below I tried multiple times but this is not working correctly ? I don't want to change my selection when any item added / removed / replaced ..Plz help😞

    QStringList itemsInComboBox;
     for (int index = 0; index < guesslist.count(); ++index) {  //check in list
        for (int item = 0; item < combo->count(); ++item) {  //check in combobox
            itemsInComboBox << combo->itemText(item);
            qDebug() << "before remove " << itemsInComboBox;
                      if ( guesslist[index] != itemsInComboBox[item]  )
                      combo->removeItem(item);
            }
         }
    

    Thanks in advance

    1 Reply Last reply
    0
    • N Offline
      N Offline
      n-2204
      wrote on last edited by
      #42

      Have another loop/iterator through all the items which are in the combo box and remove any which are not in the guess list now

      for me this way is not working any how selection of combobox is going away..
      how can i store the selection of combobox ?

      artwawA JonBJ 2 Replies Last reply
      0
      • N n-2204

        Have another loop/iterator through all the items which are in the combo box and remove any which are not in the guess list now

        for me this way is not working any how selection of combobox is going away..
        how can i store the selection of combobox ?

        artwawA Offline
        artwawA Offline
        artwaw
        wrote on last edited by
        #43

        @n-2204 https://doc.qt.io/qt-5/qcombobox.html#currentIndex-prop or currentText() if you can't relay on the order of the items or itemData() if you use roles, later on you can find the same text with different index, if that's the case, using findText() or findData().

        Do you read any documentation at all? It's all there in clear text.

        For more information please re-read.

        Kind Regards,
        Artur

        N 1 Reply Last reply
        1
        • N n-2204

          Have another loop/iterator through all the items which are in the combo box and remove any which are not in the guess list now

          for me this way is not working any how selection of combobox is going away..
          how can i store the selection of combobox ?

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

          @n-2204
          The whole thing, for what I think you say you want:

          QString selected = combo->currentText();
          combo->clear();
          combo->addItems(guesslist);
          combo->setCurrentText(selected);
          
          N 1 Reply Last reply
          0
          • JonBJ JonB

            @n-2204
            The whole thing, for what I think you say you want:

            QString selected = combo->currentText();
            combo->clear();
            combo->addItems(guesslist);
            combo->setCurrentText(selected);
            
            N Offline
            N Offline
            n-2204
            wrote on last edited by n-2204
            #45

            @JonB said in Combobox in Qtableview:

            The whole thing, for what I think you say you want:

            QString selected = combo->currentText();
            combo->clear();
            combo->addItems(guesslist);
            combo->setCurrentText(selected);
            edited
            thanks it works,, there some other mistake in code

            1 Reply Last reply
            0
            • artwawA artwaw

              @n-2204 https://doc.qt.io/qt-5/qcombobox.html#currentIndex-prop or currentText() if you can't relay on the order of the items or itemData() if you use roles, later on you can find the same text with different index, if that's the case, using findText() or findData().

              Do you read any documentation at all? It's all there in clear text.

              N Offline
              N Offline
              n-2204
              wrote on last edited by
              #46

              @artwaw said in Combobox in Qtableview:
              currentText() if you can't relay on the order of the items or itemData() if you use roles, later on you can find the same text with different index, if that's the case, using findText() or findData().

              Do you read any documentation at all? It's all there in clear text.

              Thanks,,i trying to implement but thing is removeitem+selection from combobox not working correctly

              JonBJ 1 Reply Last reply
              0
              • N n-2204

                @artwaw said in Combobox in Qtableview:
                currentText() if you can't relay on the order of the items or itemData() if you use roles, later on you can find the same text with different index, if that's the case, using findText() or findData().

                Do you read any documentation at all? It's all there in clear text.

                Thanks,,i trying to implement but thing is removeitem+selection from combobox not working correctly

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

                @n-2204 said in Combobox in Qtableview:

                currentText() if you can't relay on the order of the items or itemData() if you use roles, later on you can find the same text with different index, if that's the case, using findText() or findData().

                From my code all you need to restore the selection is the combo->setCurrentText(selected);.

                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