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. [Solved]Size of pushbuttons

[Solved]Size of pushbuttons

Scheduled Pinned Locked Moved Mobile and Embedded
24 Posts 5 Posters 16.2k Views
  • 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
    alfah
    wrote on last edited by
    #1

    Hello,

    I have created an array of buttons, 6x7. I had not specified any size for these while creating them. So they must have been created in some default size.

    Now that i have the array of equal sized buttons, I need to find out their size so as to put the images on them. how to i do that? I could not find any function such as, get size or get height or get width.

    Thank you

    1 Reply Last reply
    0
    • EddyE Offline
      EddyE Offline
      Eddy
      wrote on last edited by
      #2

      "from the docs :":http://doc.qt.nokia.com/4.7/qwidget.html#size-prop

      bq. size : QSizeThis property holds the size of the widget excluding any window frame.

      bq. If the widget is visible when it is being resized, it receives a resize event (resizeEvent()) immediately. If the widget is not currently visible, it is guaranteed to receive an event before it is shown.
      The size is adjusted if it lies outside the range defined by minimumSize() and maximumSize().
      By default, this property contains a value that depends on the user's platform and screen geometry.
      Warning: Calling resize() or setGeometry() inside resizeEvent() can lead to infinite recursion.
      Note: Setting the size to QSize(0, 0) will cause the widget to not appear on screen. This also applies to windows.
      See also pos, geometry, minimumSize, maximumSize, resizeEvent(), and adjustSize().

      Qt Certified Specialist
      www.edalsolutions.be

      1 Reply Last reply
      0
      • L Offline
        L Offline
        leon.anavi
        wrote on last edited by
        #3

        "QPushButton":http://doc.qt.nokia.com/latest/qpushbutton.html extends "QWidget":http://doc.qt.nokia.com/latest/qwidget.html so you can use "geometry()":http://doc.qt.nokia.com/latest/qwidget.html#geometry-prop to retrieve width and height from the returned "QRect":http://doc.qt.nokia.com/latest/qrect.html.

        http://anavi.org/

        1 Reply Last reply
        0
        • A Offline
          A Offline
          alfah
          wrote on last edited by
          #4

          eddy,

          In the docs, I found,
          @
          int QSize::height () const @

          Returns the height.

          How do i call the function height()?? using obj of QSize??

          This is my code. I jus need to find the height and width of any button
          @
          cellBut[i][j]=new QPushButton();
          connect(cellBut[i][j],SIGNAL(clicked()),this,SLOT(onClickAction()));
          @

          Thank you

          1 Reply Last reply
          0
          • C Offline
            C Offline
            Chuck Gao
            wrote on last edited by
            #5

            Just use QPushButton::size(), it's supper base is QWidget

            Chuck

            1 Reply Last reply
            0
            • R Offline
              R Offline
              rokemoon
              wrote on last edited by
              #6

              What if like that
              @cellBut[i][j]->size().height()@

              1 Reply Last reply
              0
              • A Offline
                A Offline
                alfah
                wrote on last edited by
                #7

                chuck,

                size function will return what values? With respect to my code, could u tell me how to go about it to find the size of any one of the pushbuttons?

                Thank you

                1 Reply Last reply
                0
                • R Offline
                  R Offline
                  rokemoon
                  wrote on last edited by
                  #8

                  "size()":http://doc.qt.nokia.com/latest/qwidget.html#size-prop return "QSize":http://doc.qt.nokia.com/latest/qsize.html object, where you can call "height()":http://doc.qt.nokia.com/latest/qsize.html#height

                  1 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    alfah
                    wrote on last edited by
                    #9

                    rokemoon

                    :D I got it :D Thank you!!!

                    Jus one more questions, the values i got was 480 n 640. could you tell me, wats the unit? i mean, mm?? px?? or wat???

                    Thank you

                    1 Reply Last reply
                    0
                    • R Offline
                      R Offline
                      rokemoon
                      wrote on last edited by
                      #10

                      the value in px.
                      If you solved your problem please mark title of the post like this
                      [SOLVED] Size of pushbuttions

                      1 Reply Last reply
                      0
                      • C Offline
                        C Offline
                        Chuck Gao
                        wrote on last edited by
                        #11

                        I'm sorry alfah, i can not understand your English clearlly. But, the size() function will return the widget's size(as we know QSize), as Eddy mentioned before, i think you need know some concept of geometry/bounding-rect.

                        [quote author="alfah" date="1311752432"]could u tell me how to go about it to find the size of any one of the pushbuttons?[/quote]

                        what do you mean alfah ? Can you give us a more detailed description ?

                        Chuck

                        1 Reply Last reply
                        0
                        • C Offline
                          C Offline
                          Chuck Gao
                          wrote on last edited by
                          #12

                          ok, you solve it. Good luck :D

                          Chuck

                          1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            alfah
                            wrote on last edited by
                            #13

                            Hey everybody,

                            im sorry to restart this thread, but the following code gives me values 480 and 640
                            @
                            cellBut[i][j]=new QPushButton();
                            connect(cellBut[i][j],SIGNAL(clicked()),this,SLOT(onClickAction()));
                            ht=cellBut[0][0]->size().height();
                            wd=cellBut[0][0]->size().width();
                            @

                            by no means this is the size of the buttons, think its the screen size!!!!

                            I need pushbutton ht and width

                            Thank you

                            1 Reply Last reply
                            0
                            • EddyE Offline
                              EddyE Offline
                              Eddy
                              wrote on last edited by
                              #14

                              did you use an iteration like :
                              @for(i = 0, i < max , ++i){
                              for(j=0, j<max, ++j){
                              //do your stuff
                              }
                              }@

                              Qt Certified Specialist
                              www.edalsolutions.be

                              1 Reply Last reply
                              0
                              • A Offline
                                A Offline
                                alfah
                                wrote on last edited by
                                #15

                                eddy,

                                Yup i did,
                                @
                                for(int i=0;i<6;i++)
                                {
                                for(int j=0;j<7;j++)
                                {

                                       cellBut[i][j]=new QPushButton();
                                       connect(cellBut[i][j],SIGNAL(clicked()),this,SLOT(onClickAction()));
                                       ht=cellBut[i][j]->size().height();
                                       wd=cellBut[i][j]->size().width();
                                
                                    }
                                }
                                

                                @

                                ht and wd gives me 640 and 480 respectivvely. which i think is the screen size and not individual button size.
                                :(

                                1 Reply Last reply
                                0
                                • C Offline
                                  C Offline
                                  Chuck Gao
                                  wrote on last edited by
                                  #16

                                  I think the problem is, you didn't set the pushbutton's size implicit. And you didn't use any layout management. So the value is not you want.

                                  Chuck

                                  1 Reply Last reply
                                  0
                                  • EddyE Offline
                                    EddyE Offline
                                    Eddy
                                    wrote on last edited by
                                    #17

                                    what Chuck is saying is that you didn't use a parent or add them to a layout. That way they get a size.

                                    have a look at this quick and dirty example:

                                    @ int rows = 6;//this is convenient in case you want to alter the numbers
                                    int cols = 7;
                                    QPushButton* cellBut[rows][cols] ;

                                    for(int i=0;i<rows;i++) {
                                        for(int j=0;j<cols;j++)     {
                                            cellBut[i][j]=new QPushButton(this);    //remark the use of a parent here
                                            //        connect(cellBut[i][j],SIGNAL(clicked()),this,SLOT(onClickAction()));//better way see below
                                    
                                        }
                                    }
                                    qDebug() << cellBut[0][0]->size().height();
                                    qDebug() << cellBut[0][0]->size().width();@
                                    

                                    you might have a look at "QSignalMapper":http://doc.qt.nokia.com/4.7/qsignalmapper.html#details. There is a nice example of what you try to achieve.

                                    Qt Certified Specialist
                                    www.edalsolutions.be

                                    1 Reply Last reply
                                    0
                                    • A Offline
                                      A Offline
                                      alfah
                                      wrote on last edited by
                                      #18

                                      chuck,

                                      Yea, I have not set size of the pushbutton, But since it has been created, why doesn it give me the current size of the button. That it should do right?

                                      :( Is it necessary to specify the size of the button while creating them?

                                      Thank you

                                      alfah

                                      1 Reply Last reply
                                      0
                                      • EddyE Offline
                                        EddyE Offline
                                        Eddy
                                        wrote on last edited by
                                        #19

                                        in case you missed my topic :
                                        have a look at my example. also the QSignalMapper link.

                                        Qt Certified Specialist
                                        www.edalsolutions.be

                                        1 Reply Last reply
                                        0
                                        • A Offline
                                          A Offline
                                          alfah
                                          wrote on last edited by
                                          #20

                                          :) Thanks Eddy,

                                          Got tht one, size now is 100 and 30 which is kinda resonable :)

                                          alfah

                                          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