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

Checkboxes and spinboxes to list

Scheduled Pinned Locked Moved Unsolved General and Desktop
13 Posts 5 Posters 3.4k 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.
  • ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #2

    Hi! You need to subclass QListWidgetItem, see QListWidgetItem Class.

    1 Reply Last reply
    1
    • Q Q139

      Hi,
      How to align text in QlistWidget?
      How to add checkboxes and spinboxes to QlistWidget or QlistView?
      If it all in docs plese point to the right material.

      S Offline
      S Offline
      samdol
      wrote on last edited by
      #3

      @Q139
      You may look into
      http://doc.qt.io/qt-4.8/qt-itemviews-spinboxdelegate-example.html
      It uses QTableView, but you can do the same thing on QListView.

      1 Reply Last reply
      1
      • Q Offline
        Q Offline
        Q139
        wrote on last edited by
        #4

        Thanks for pointing in right direction

        1 Reply Last reply
        0
        • ? Offline
          ? Offline
          A Former User
          wrote on last edited by
          #5

          To add to samdol, here is the same link for Qt 5: Spin Box Delegate Example

          1 Reply Last reply
          3
          • Q Offline
            Q Offline
            Q139
            wrote on last edited by Q139
            #6

            Is it possible to load frame designed via ui designer to list also?

            mrjjM 1 Reply Last reply
            0
            • Q Q139

              Is it possible to load frame designed via ui designer to list also?

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

              @Q139
              Hi
              Yes you could use UI file but its really not working
              that way and would be very heavy when just a few items in list.

              However, you can easy draw in UI and the just take the code and use.
              ( the UI files is translated to c++ code to create what you have drawn)
              Please see inside the setupUI() found in mainwindow

              Q 1 Reply Last reply
              0
              • mrjjM mrjj

                @Q139
                Hi
                Yes you could use UI file but its really not working
                that way and would be very heavy when just a few items in list.

                However, you can easy draw in UI and the just take the code and use.
                ( the UI files is translated to c++ code to create what you have drawn)
                Please see inside the setupUI() found in mainwindow

                Q Offline
                Q Offline
                Q139
                wrote on last edited by
                #8

                @mrjj Good tips, will just code then.

                mrjjM 1 Reply Last reply
                0
                • Q Q139

                  @mrjj Good tips, will just code then.

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

                  @Q139
                  :)
                  The normal trick is that when editing its real widgets but when not editing the row
                  then its just drawn. This is to keep it non heavy.

                  But if you only have few items in list, there is also
                  http://doc.qt.io/qt-5/qlistwidget.html#setItemWidget

                  That lets you set widget with no fuss.
                  This solution have bad performance very fast.

                  1 Reply Last reply
                  0
                  • Q Offline
                    Q Offline
                    Q139
                    wrote on last edited by Q139
                    #10

                    That seems easyest way , list will be max 20 item and updated rarely mostly.

                    mrjjM 1 Reply Last reply
                    0
                    • Q Q139

                      That seems easyest way , list will be max 20 item and updated rarely mostly.

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

                      @Q139
                      Ok. On a desktop class pc. i had over 1000 with no issue but
                      if you run on weaker devices, redraw can be issue.
                      But not with 20 :)

                      1 Reply Last reply
                      0
                      • Q Q139

                        Hi,
                        How to align text in QlistWidget?
                        How to add checkboxes and spinboxes to QlistWidget or QlistView?
                        If it all in docs plese point to the right material.

                        VRoninV Offline
                        VRoninV Offline
                        VRonin
                        wrote on last edited by VRonin
                        #12

                        How to align text in QlistWidget

                        use something like listWidgetItem->setData(Qt::TextAlignmentRole, Qt::AlignCenter); or listWidget->model()->setData(listWidget->model()->index(row,0),Qt::AlignCenter,Qt::TextAlignmentRole);

                        How to add checkboxes

                        use something like listWidgetItem->setFlags(listWidgetItem->flags() | Qt::ItemIsUserCheckable);

                        and spinboxes to QlistWidget or QlistView?

                        Subclass QStyledItemDelegate and set it on the view or, if you just need the editor, subclass QItemeditorFactory and apply it to your default delegate.

                        P.S.
                        Rather than using the Q*Widgets (which I hate) why not separate the model and the view?! http://doc.qt.io/qt-5/model-view-programming.html

                        "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                        ~Napoleon Bonaparte

                        On a crusade to banish setIndexWidget() from the holy land of Qt

                        1 Reply Last reply
                        1
                        • Q Offline
                          Q Offline
                          Q139
                          wrote on last edited by Q139
                          #13

                          Tryed manual code but decided to do design ui to position items better.

                          for(uint n=0; n<set_to_use.extra.corSetVec.size(); n++){
                              if(ui->corSetList->count() <= n){//to initialize more items
                                  ui->corSetList->addItem("");
                              }
                              corSetStruct co=set_to_use.extra.corSetVec[n];
                              corSetListComponent * wid = new corSetListComponent;// ui widget
                              wid->setStructToUI(co);// data to ui widget
                              wid->vecIndex=n; 
                              
                              QSize siz; // to set item size
                              siz.setHeight(wid->height());
                              siz.setWidth(ui->corSetList->width()-4); //-4 to avoid creating slider bar
                              ui->corSetList->item(n)->setSizeHint(siz);
                              ui->corSetList->setItemWidget(ui->corSetList->item(n),wid); 
                          }
                          

                          This solved it so far, may not be best code but it work for now.
                          Would qListWidget delete the corSetListComponent * wid = new corSetListComponent; from ram after list item removed?

                          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