why do I receive error when I do not #include for example QToolButton , but rather go for its forward class declaration?

Qt Code:
  1. #ifndef PLAYVIDEO_H
  2. #define PLAYVIDEO_H
  3.  
  4. #include <QWidget>
  5.  
  6.  
  7.  
  8.  
  9. class PlayVideo : public QWidget
  10. {
  11. Q_OBJECT
  12. public:
  13. PlayVideo(QWidget *parent = 0);
  14.  
  15. private:
  16. void createButtons();
  17. void createControls();
  18.  
  19.  
  20. QToolButton *playButton;
  21. QToolButton *pauseButton;
  22. QToolButton *stopButton;
  23.  
  24. QGridLayout *controlsLayout;
  25. QHBoxLayout *buttonsLayout;
  26. QVBoxLayout *mainLayout;
  27.  
  28. };
  29.  
  30. #endif // PLAYVIDEO_H
To copy to clipboard, switch view to plain text mode 

error: forward declaration of ‘struct QToolButton’