[英]Qt: Animating the 'roll down' of a QWidget
我有一個包含各種其他小部件的QWidget。 我想通過從上向下逐漸顯示它,以使其出現在屏幕上的動畫效果,將其高度從0增加到自然的高度。
我目前擁有的方式是:
mAnimation = new QPropertyAnimation(this, "maximumHeight");
mAnimation->setStartValue(0);
mAnimation->setEndValue(400);
mAnimation->start();
這有兩個問題:-當高度達到一定高度時崩潰,並顯示“ qDrawShadeRect:無效參數”錯誤。 -如果將0更改為100,則可以正常工作,但是要設置動畫的QWidget中包含的控件的布局會隨着動畫的改變而改變,開始擠在一起並隨着空間的增加逐漸散開。 這看起來很丑!
有沒有人有什么建議?
對於第二個問題,我建議將所有內容包裝在另一個具有固定大小的窗口小部件中。 由於窗口小部件的裁剪,這意味着該窗口小部件將在動畫時顯示全尺寸窗口小部件的一部分。
對於崩潰,我建議獲取堆棧跟蹤,並假設問題不在您的代碼中, 請將其報告為bug 。
第二,而不是將窗口小部件精確地呈現在您想要的不同大小處,而是按照您希望其被看到的方式進行渲染。 例如:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.