Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Creating an array of buttons
Qt 6.11 is out! See what's new in the release blog

Creating an array of buttons

Scheduled Pinned Locked Moved Mobile and Embedded
12 Posts 4 Posters 24.8k Views 1 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.
  • A Offline
    A Offline
    Aleskey78
    wrote on last edited by
    #2

    all the buttons are displayed in one row only..
    You add the buttons into "controlsLayout" which is "QHBoxLayout":http://doc.qt.nokia.com/latest/qhboxlayout.html
    "The QHBoxLayout class lines up widgets horizontally..."

    1 Reply Last reply
    0
    • A Offline
      A Offline
      Aleskey78
      wrote on last edited by
      #3

      Just use "QGridLayout":http://doc.qt.nokia.com/latest/qgridlayout.html instead of QHBoxLayout
      @ QWidget *centralWidget = new QWidget;
      int count=1,i,j;
      QPushButton *button[10][10];
      QGridLayout *controlsLayout = new QGridLayout;
      for(i=0;i<7;i++)
      {
      for(j=0;j<7;j++)
      {
      if(count<=42)
      {

                      button[i][j] = new QPushButton("p");
                      button[i][j]->resize(40,40);
                      button[i][j]->move(40*j, 40*i);
                      button[i][j]->show();
                      controlsLayout->addWidget(button[i][j], i, j);
                      count++;
                  }
              }
          }
          centralWidget->setLayout(controlsLayout);
          setCentralWidget(centralWidget);@
      
      1 Reply Last reply
      0
      • B Offline
        B Offline
        BorahAnshuman
        wrote on last edited by
        #4

        thanks Aleskey..its working now....the only thing is that ...hw can i decrease the space between each row...

        As i had used all this in my code ...but its not working..

        QGridLayout::setSpacing()
        QGridLayout ::setHorizontalSpacing()
        QGridLayout ::setVerticalSpacing()

        space remain same...
        with regards
        Anshuman

        1 Reply Last reply
        0
        • A Offline
          A Offline
          Aleskey78
          wrote on last edited by
          #5

          Maybe it will be better if you use no layouts at all:
          @ button[i][j] = new QPushButton("p", centralWidget);

                          button[i][j]->resize(40,40);
          
                          button[i][j]->move(40*j, 40*i);
          
                          button[i][j]->show();
          
                          //controlsLayout->addWidget(button[i][j], i, j);
          

          ...
          //centralWidget->setLayout(controlsLayout);
          setCentralWidget(centralWidget);
          @

          1 Reply Last reply
          0
          • A Offline
            A Offline
            andre
            wrote on last edited by
            #6

            Obviously moving and resizing the buttons and putting them in a layout that manages their size and location is nonsense, but I think using a layout is the way to go. I'd rather dump the resize and the move. What happens if you use your application on a high-res display with a small dot pitch? You'll end up with tiny buttons, making the application unusable.

            1 Reply Last reply
            0
            • B Offline
              B Offline
              BorahAnshuman
              wrote on last edited by
              #7

              yeh aleskey its work..but the thing is that i am using this array of buttons in creating my custom calender...so for that i hv to use layout..otherwise..nw if i try to use textbrowser below after all the button are set in rows and columns..hw can i manage to do it so..thats means the USERInterface design i want is similar to calenderWidget the only difference is that i use buttons for representing each cell..

              with regards
              Anshuman

              1 Reply Last reply
              0
              • A Offline
                A Offline
                Aleskey78
                wrote on last edited by
                #8

                As i had used all this in my code …but its not working..
                it is working, I have tested:

                @QWidget *centralWidget = new QWidget;
                int count=1,i,j;
                QPushButton *button[10][10];
                QGridLayout *controlsLayout = new QGridLayout;
                for(i=0;i<7;i++)
                {
                for(j=0;j<7;j++)
                {
                if(count<=42)
                {
                button[i][j] = new QPushButton("p");
                controlsLayout->addWidget(button[i][j], i, j);
                count++;
                }
                }
                }
                controlsLayout->setHorizontalSpacing(0);
                controlsLayout->setVerticalSpacing(0);
                centralWidget->setLayout(controlsLayout);

                    setCentralWidget(centralWidget);@
                
                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  Aleskey78
                  wrote on last edited by
                  #9

                  Some strange things are happening here...
                  http://developer.qt.nokia.com/forums/viewthread/5366/
                  Pair programming? :)

                  1 Reply Last reply
                  0
                  • V Offline
                    V Offline
                    vinb
                    wrote on last edited by
                    #10

                    Or 1 and the same person?

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      andre
                      wrote on last edited by
                      #11

                      I am getting the feeling: homework assignment.

                      1 Reply Last reply
                      0
                      • V Offline
                        V Offline
                        vinb
                        wrote on last edited by
                        #12

                        Then they have to work together, much easier.

                        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