4

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

如何获得 a 的当前大小QGraphicsView

4

5 回答 5

5

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

于 2011-02-25T03:05:43.500 回答
5

不断收到 100x30 作为我的 QGraphicsView 的大小。原来我是在显示 QGraphicsView 之前询问它的大小。

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

于 2011-04-07T11:53:42.403 回答
2

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

那就是问题所在!小部件尚未绘制,您正在询问它的大小。使用其他事件(如event, showEvent, )paintEvent在小部件的初始化过程中获得正确的大小。

于 2015-02-16T20:42:23.297 回答
0

我和你有同样的问题。QGraphicsView.size()总是return (100,30)。我已经在我的项目中解决了这个问题。

检查下面的代码是这样的

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

所以就像 Bigbell Mercy 回答的那样,你表演肯定QGraphicsView是表演!

于 2019-11-06T09:56:04.443 回答
0

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

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

于 2017-01-13T14:34:17.623 回答