Только заменить
...
if(event->buttons()==Qt::LeftButton) // нажата левая кнопка
....
на
if( event->buttons().testFlag(Qt::LeftButton) )
Но я также думаю, что лучше делать через флаг, который устанавливается в mousePressEvent и снимается в mouseReleaseEvent