[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
-
"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
-
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