2012-07-11 42 views
6

Tôi có vấn đề sau: Tôi muốn thay đổi kích thước cửa sổ bằng QPropertyAnimation, để trông đẹp mắt, nhưng cửa sổ cũng di chuyển ngay lập tức trong khi thay đổi kích thước diễn ra, trong khi tôi không muốn, chỉ muốn thay đổi kích thước cửa sổ và không thay đổi giá trị vị trí của nó.Thay đổi kích thước cửa sổ bằng cách sử dụng QPropertyAnimation

Vì vậy, đây là mã của tôi:

animation = new QPropertyAnimation(this, "geometry"); 
animation->setDuration(150); 
animation->setStartValue(QRect(preferences::x(), preferences::y(), width, window_height_min)); 
animation->setEndValue(QRect(preferences::x(), preferences::y(), width, window_height_min+expand_general_to)); 
animation->start(); 

nơi chiều rộng và window_height_min và expand_general_to là các biến của riêng tôi có thể xử lý số tiền thay đổi kích thước mà đã được thực hiện. NHƯNG, sở thích :: x() và sở thích :: y() thực sự xử lý vị trí của cửa sổ của tôi, vậy tại sao nó di chuyển, trong khi prefereces :: x() sẽ giống nhau cả hai lần? (bắt đầu và giá trị cuối)?

Cảm ơn trước vì bất kỳ câu trả lời nào!

Trả lời

8

Vui lòng thử đặt thuộc tính kích thước.

animation = new QPropertyAnimation(this, "size"); 
animation->setDuration(150); 
animation->setStartValue(QSize(width, window_height_min)); 
animation->setEndValue(QSize(width, window_height_min+expand_general_to)); 
animation->start(); 
Các vấn đề liên quan