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. How to disable a qlistwidget item in Qt C++
Forum Updated to NodeBB v4.3 + New Features

How to disable a qlistwidget item in Qt C++

Scheduled Pinned Locked Moved Solved General and Desktop
13 Posts 5 Posters 9.0k 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.
  • M Offline
    M Offline
    moyin
    wrote on last edited by
    #1

    hi, i came across an situation that needs to disable a specific item in a qlistwidget , i didn't find any method like setenable(bool)/setdisable(bool).
    so any idea do you, to resolve this, please help in this regard.

    1 Reply Last reply
    0
    • mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi
      You can make it not select able
      item->setFlags(item->flags() & ~Qt::ItemIsSelectable);

      M 1 Reply Last reply
      5
      • Paul ColbyP Offline
        Paul ColbyP Offline
        Paul Colby
        wrote on last edited by Paul Colby
        #3

        Hi @moyin,

        Not sure, but perhaps something like:

        QListWidgetItem * item = listWidget->item(row); // Or some other way to get the item in question.
        item->setFlags(item->flags() & ~Qt::ItemIsEnabled); // Remove the group of ItemIsEnabled flags.
        

        Cheers.

        Edit: Ah, @mrjj beat me to it ;)

        M 1 Reply Last reply
        5
        • mrjjM mrjj

          Hi
          You can make it not select able
          item->setFlags(item->flags() & ~Qt::ItemIsSelectable);

          M Offline
          M Offline
          moyin
          wrote on last edited by
          #4

          @mrjj
          hi thanks for rply, i tried as u suggested but doesn't make sense.

          ui->listWidget_CPUs->item(0)->setFlags( ui->listWidget_CPUs->item(0)->flags() & ~Qt::ItemIsSelectable);
          
          D mrjjM 2 Replies Last reply
          0
          • M moyin

            @mrjj
            hi thanks for rply, i tried as u suggested but doesn't make sense.

            ui->listWidget_CPUs->item(0)->setFlags( ui->listWidget_CPUs->item(0)->flags() & ~Qt::ItemIsSelectable);
            
            D Offline
            D Offline
            Devopia53
            wrote on last edited by
            #5

            @moyin

            If so, what @Paul-Colby already proposed is what you want.

            1 Reply Last reply
            0
            • M moyin

              @mrjj
              hi thanks for rply, i tried as u suggested but doesn't make sense.

              ui->listWidget_CPUs->item(0)->setFlags( ui->listWidget_CPUs->item(0)->flags() & ~Qt::ItemIsSelectable);
              
              mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #6

              @moyin

              In what way "doesn't make sense." ?

              1 Reply Last reply
              0
              • Paul ColbyP Paul Colby

                Hi @moyin,

                Not sure, but perhaps something like:

                QListWidgetItem * item = listWidget->item(row); // Or some other way to get the item in question.
                item->setFlags(item->flags() & ~Qt::ItemIsEnabled); // Remove the group of ItemIsEnabled flags.
                

                Cheers.

                Edit: Ah, @mrjj beat me to it ;)

                M Offline
                M Offline
                moyin
                wrote on last edited by
                #7

                @Paul-Colby,Hi thanks for reply,
                how to re-enable it back after disabling bcoz the above code will disable permanantly, i need to enable back it again.

                mrjjM 1 Reply Last reply
                0
                • M moyin

                  @Paul-Colby,Hi thanks for reply,
                  how to re-enable it back after disabling bcoz the above code will disable permanantly, i need to enable back it again.

                  mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by mrjj
                  #8

                  @moyin

                  Hi just remove the
                  ~
                  item->setFlags(item->flags() & Qt::ItemIsEnabled);

                  JonBJ 1 Reply Last reply
                  0
                  • mrjjM mrjj

                    @moyin

                    Hi just remove the
                    ~
                    item->setFlags(item->flags() & Qt::ItemIsEnabled);

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

                    @mrjj , @Paul-Colby
                    That won't work, I think, once the flags have been set. He'll want:

                    ui->listWidget_CPUs->item(0)->setFlags( ui->listWidget_CPUs->item(0)->flags() | Qt::ItemIsSelectable);

                    M 1 Reply Last reply
                    0
                    • JonBJ JonB

                      @mrjj , @Paul-Colby
                      That won't work, I think, once the flags have been set. He'll want:

                      ui->listWidget_CPUs->item(0)->setFlags( ui->listWidget_CPUs->item(0)->flags() | Qt::ItemIsSelectable);

                      M Offline
                      M Offline
                      moyin
                      wrote on last edited by
                      #10

                      @JonB @mrjj , @Paul-Colby
                      I tried this

                      ui->listWidget_CPUs->item(0)->setFlags( ui->listWidget_CPUs->item(0)->flags() | Qt::ItemIsSelectable);
                      

                      doesn't working, i want to enable it again after disabling.

                      D JonBJ 2 Replies Last reply
                      0
                      • M moyin

                        @JonB @mrjj , @Paul-Colby
                        I tried this

                        ui->listWidget_CPUs->item(0)->setFlags( ui->listWidget_CPUs->item(0)->flags() | Qt::ItemIsSelectable);
                        

                        doesn't working, i want to enable it again after disabling.

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

                        @moyin

                        You can try this:
                        ui->listWidget_CPUs->item(0)->setFlags(ui->listWidget_CPUs->item(0)->flags() ^ Qt::ItemIsEnabled); // both enable or disable, toggle mode

                        1 Reply Last reply
                        2
                        • M moyin

                          @JonB @mrjj , @Paul-Colby
                          I tried this

                          ui->listWidget_CPUs->item(0)->setFlags( ui->listWidget_CPUs->item(0)->flags() | Qt::ItemIsSelectable);
                          

                          doesn't working, i want to enable it again after disabling.

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

                          @moyin
                          Well, if ui->listWidget_CPUs->item(0)->flags() & ~Qt::ItemIsSelectable disables it, then ui->listWidget_CPUs->item(0)->flags() | Qt::ItemIsSelectable undoes the effect of the first statement....

                          I suppose you could try ui->listWidget_CPUs->item(0)->flags() | Qt::ItemIsSelectable | Qt::ItemIsEnabled, but I don't see why you should have to.

                          M 1 Reply Last reply
                          2
                          • JonBJ JonB

                            @moyin
                            Well, if ui->listWidget_CPUs->item(0)->flags() & ~Qt::ItemIsSelectable disables it, then ui->listWidget_CPUs->item(0)->flags() | Qt::ItemIsSelectable undoes the effect of the first statement....

                            I suppose you could try ui->listWidget_CPUs->item(0)->flags() | Qt::ItemIsSelectable | Qt::ItemIsEnabled, but I don't see why you should have to.

                            M Offline
                            M Offline
                            moyin
                            wrote on last edited by
                            #13

                            @JonB yes! it works fine thank you,

                            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