QWidget move后QQuickView的size改变了, resize后QQuickWidget拉伸了

QQuickView添加到QWidget中

m_pContentView = new QQuickView();
.......
this->createWindowContainer(m_pContentView, this);

QWidget调用move后发现qml只显示了左上角很小的一片区域

于是在move之前,之后获取了一下m_pContentView的size

mLastPos = this->pos();
qDebug()<<"contentview size"<size();
this.move(100, mLastPos.y());
qDebug()<<"after move contentview size"<size();

发现第一次打印的size是正常的,但是第二次打印的size变成了100*300;

具体原因不知,但是为了解决问题,只能在move后加一个resize操作

this.move(100, mLastPos.y());
m_pContentView->resize(this->width(),this->height());

虽然显示正常了,但是。。。。算了懒得追究了。

QQuickWidget添加到QVBoxLayout中,在QWidget调用show()之前执行了resize操作,导致QQuickWidget中的qml被拉伸了,然后再resize一下,又正常了,所以为了正常显示,在调用show()之后被迫调用了resize(width()+1,height()+1)

也懒得追究了。

你可能感兴趣的:(qt)