获得QGraphicsView的大小

时间:2011-02-24 10:52:25

标签: c++ qt qgraphicsview

我想知道某个QGraphicsView的大小。它的大小不固定,因为小部件是网格布局的一部分。我尝试使用this->ui->myGraphicsView->width()及其高度等效,但这些值并不准确。

如何获得QGraphicsView的当前大小?

5 个答案:

答案 0 :(得分:3)

如果你想知道QGraphicsView的实际大小,QGraphicsView :: size(); 如果你只想知道QGraphicsView的内容大小,QGraphisView :: viewport()。size();

答案 1 :(得分:3)

我的QGraphicsView的大小也不断收到100x30。事实证明,在显示之前我要求QGraphicsView的大小。

将我的初始化代码移动到showEvent后,我得到了正确的尺寸。

答案 2 :(得分:2)

  

检索MainWindow构造函数中的宽度/高度

这就是问题所在!小部件已经没有画过,你要求它的大小。使用其他事件,例如eventshowEventpaintEvent,可以在窗口小部件的初始化过程中获得正确的大小。

答案 3 :(得分:0)

答案:  在调用MainWindow :: show()之后,获取大小。

描述:  我和彼得有同样的问题。在像MainWindow :: MainWindow()这样的小部件构造函数中,你无法像网格布局中的QGraphicsView那样获得小部件的正确大小,因为在该构造函数中,小部件的大小和位置未确定。因此,在MainWindow :: MainWindow()中,您必须调用show(),然后获取视图或其他小部件的大小。

答案 4 :(得分:0)

我也有同样的问题。 services.PostConfigure<PolicyRegistry>(x => PostConfig(x)); 始终为QGraphicsView.size()。我已经在我的项目中解决了这个问题。

检查下面的代码是这样的

return (100,30)

就像Bigbell Mercy回答的那样,您必须确保显示...in a QTabWidget class... def addANewTab(self): view = QGraphicsView() ...set view param... index = self.addTab(view, 'test') view.size() # it will return (100,30) self.setCurrentIndex(index) view.size() # it will return correct size