Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

[Solved]Size of pushbuttons



  • 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



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



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



  • 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





  • 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



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



  • 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 ?



  • ok, you solve it. Good luck :D



  • 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



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



  • 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.
    :(



  • 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.



  • 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.



  • 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



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



  • :) Thanks Eddy,

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

    alfah



  • You're welcome. I'm glad you made it.

    And did you have a look at the QSignalMapper example?
    This will make your signal slots handling much easier.



  • :)

    I checked that, :) its a lot more easier.

    Thank you :) :)



  • Anyway, Enjoy Qt alfah :D



  • chuck,

    :) well, im a beginner in Qt, so far it hasn been an enjoyment :),
    gradually i hope i will love bugs:D

    :)


Log in to reply