Witam,
piszę program graficzny w Qt, w którym to obrazek ma się płynnie ruszać, powiedzmy koło ma dwukrotnie powiększyć swoją średnicę. Utworzyłem sobie klasę scena, która dziedziczy po QGraphicsScene, w jej konstruktorze rysuję tło i różne figury geometryczne, dodaję je do sceny. Następnie,już w funkcji main() scenę wrzucam do obiektu klasy QGraphicsView, która przy użyciu QApplication mój zaplanowany obrazek wyświetla. Do tego momentu wszystko jest spoko. Później przy pomocy QTimer po 5 sekundach wywołuję slot dla sceny - powiększKoło(), której kod podaję niżej i tu już pojawia się problem:
for(int i=0 ; i<=100 ; i++)
{
removeItem(kolo); //usuwam stare kolo o wymiarach 100x100
kolo = new QGraphicsEllipseItem(0, this); //tworze nowe kolo
kolo->setRect(0,0,100+i,100+i);
usleep(10000); //czekam 10ms czyli cała operacja powinna zająć 100x10ms = 1s
update(); //co iterację updatuję!
}
I moim problemem jest, że widzę koło narysowane już w konstruktorze, po 5sekundach QTimer się wywołuje(na pewno, sygnalizuje sobie to w cout) i po sekundzie widze nowe koło, o wymiarach 200x200. Zero efektu 'powiększania' koła. Sądzę, że z update() robię coś nie tak, tzn że nie jest to wystarczająca metoda, ale jestem dość zielony w Qt i czytam helpa i czytam i nic pomocnego nie mogę znaleźć. Liczę na jakieś wskazówki :)
pozdrawiam!
"