我想知道某一个的大小QGraphicsView
。它的大小不是固定的,因为小部件是网格布局的一部分。我尝试使用this->ui->myGraphicsView->width()
它的高度等效,但这些值不准确。
如何获得 a 的当前大小QGraphicsView
?
我想知道某一个的大小QGraphicsView
。它的大小不是固定的,因为小部件是网格布局的一部分。我尝试使用this->ui->myGraphicsView->width()
它的高度等效,但这些值不准确。
如何获得 a 的当前大小QGraphicsView
?
如果你想知道QGraphicsView的实际大小,QGraphicsView::size(); 如果你只想知道 QGraphicsView 的内容大小,QGraphisView::viewport().size();
不断收到 100x30 作为我的 QGraphicsView 的大小。原来我是在显示 QGraphicsView 之前询问它的大小。
将我的初始化代码移动到 showEvent 后,我得到了正确的尺寸。
在 MainWindow 的构造函数中检索宽度/高度
那就是问题所在!小部件尚未绘制,您正在询问它的大小。使用其他事件(如event
, showEvent
, )paintEvent
在小部件的初始化过程中获得正确的大小。
我和你有同样的问题。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
是表演!
答:调用 MainWindow::show() 后,获取大小。
描述:我和 Pieter 有同样的问题。在像 MainWindow::MainWindow() 这样的小部件构造函数中,您无法在网格布局中获得像 QGraphicsView 这样的小部件的正确大小,因为在该构造函数中,小部件的大小和位置未确定。因此,在 MainWindow::MainWindow() 中,您必须调用 show() 然后获取视图或其他小部件的大小。