I honestly don't have an idea about how to notify the main widget that a collision has happened and delete the object from the scenes there.
If you derive your cannonball object from QGraphicsObject instead of QGraphicsItem, then it can have slots and signals. So, if you do your collision detection inside the cannonball code, then have it emit a signal "uhOhIAmAGoner( cannonball * unlucky )" that can be handled by a slot in the main window, view, or scene. Since the signal passes itself (this), you don't have to resort to tricks to find out which cannonball hit the mob.

Qt Code:
  1. class cannonball : public QGraphicsObject
  2. {
  3. Q_OBJECT;
  4.  
  5. // ...
  6.  
  7. signals:
  8. void uhOhIAmAGoner( cannonball * unlucky );
  9.  
  10. protected slots:
  11. void hitEnemy();
  12.  
  13. protected:
  14. QTimer timer;
  15. };
  16.  
  17. cannonball::cannonball( QGraphicsItem * parent ) :
  18. : QGraphicsObject( parent )
  19. , timer( this )
  20. {
  21. timer.setInterval( 100 );
  22.  
  23. connect( &timer, SIGNAL( timeout() ), this, SLOT( hitEnemy() ) );
  24. timer.start();
  25. }
  26.  
  27. void cannonball::hitEnemy()
  28. {
  29. if ( collidedWithAMob() ) // You can figure this part out
  30. {
  31. timer.stop();
  32. emit uhOhIAmAGoner( this );
  33. }
  34. else
  35. updatePosition();
  36. }
  37.  
  38. class MainWindow: public QMainWindow
  39. {
  40. // ...
  41.  
  42. public slots:
  43. void killThatCannonball( cannonball * cball );
  44.  
  45. protected:
  46. void addACannonball();
  47.  
  48. private:
  49. QGraphicsScene mobScene;
  50. };
  51.  
  52.  
  53. void MainWindow::addACannonball()
  54. {
  55. cannonball * cBall = new cannonball();
  56. // establish initial trajectory, etc.
  57.  
  58. mobScene.addItem ( cBall );
  59.  
  60. connect( cBall, SIGNAL( uhOhIAmAGoner( cannonball * ) ), this, SLOT( killThatCannonball( cannonball * ) ) );
  61. }
  62.  
  63. void MainWindow::killThatCannonball( cannonball * cBall )
  64. {
  65. mobScene.removeItem ( cBall );
  66. delete cBall;
  67. }
To copy to clipboard, switch view to plain text mode 

Of course, none of this code has been compiled and certainly not tested. That's why your professor gave it to you as a homework project...