我想知道某个QGraphicsView
的大小。它的大小不固定,因为小部件是网格布局的一部分。我尝试使用this->ui->myGraphicsView->width()
及其高度等效,但这些值并不准确。
如何获得QGraphicsView
的当前大小?
答案 0 :(得分:3)
如果你想知道QGraphicsView的实际大小,QGraphicsView :: size(); 如果你只想知道QGraphicsView的内容大小,QGraphisView :: viewport()。size();
答案 1 :(得分:3)
我的QGraphicsView的大小也不断收到100x30。事实证明,在显示之前我要求QGraphicsView的大小。
将我的初始化代码移动到showEvent后,我得到了正确的尺寸。
答案 2 :(得分:2)
检索MainWindow构造函数中的宽度/高度
这就是问题所在!小部件已经没有画过,你要求它的大小。使用其他事件,例如event
,showEvent
,paintEvent
,可以在窗口小部件的初始化过程中获得正确的大小。
答案 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
!