I want to know the size of a certain QGraphicsView
. Its size isn't fixed because the widget is part of a grid layout. I tried using this->ui->myGraphicsView->width()
and its height equivalent but these values aren't accurate.
How can I get the current size of a QGraphicsView
?
Constantly received 100x30 as the size of my QGraphicsView as well. It turned out I was asking for the size of the QGraphicsView before it was shown.
After moving my initialization code to showEvent, I got the correct dimensions.
If you wanna know the actual size of QGraphicsView, QGraphicsView::size();
If you wanna konw only the content size of QGraphicsView, QGraphisView::viewport().size();
retrieve the width/height in MainWindow's constructor
That is the problem! The widget isn't painted already and you're asking for it's size. Use other events like event
, showEvent
, paintEvent
to get the right size within the initialization process of a widget.
Answer:
After calling MainWindow::show(), then get the size.
Description:
I had the same problem as Pieter. In the widget constructor like MainWindow::MainWindow() you can't get the correct size of the widget like QGraphicsView in Grid Layout because in that constructor the widget's size and location are not determined. Therefore, in MainWindow::MainWindow() you have to call show() and then get the size of the view or other widget.