text: Title: `PlotItem.scene()` has a `QGraphicsScene` type hint instead of a `pyqtgraph.GraphicsScene`
  Body: ### Short description
  `PlotItem.scene()` has a type hint of `QGraphicsScene | None` instead of a `pyqtgraph.GraphicsScene`. This raises an error when trying to access signals from the scene, such as `sigMouseMoved`.
  
  ### Code to reproduce
  This is an abridged snippet of code from the `crosshair.py` example:
  
  ```python
  import pyqtgraph as pg
  
  def mouseMoved(evt):
      pass
  
  p = pg.PlotItem()
  p.scene().sigMouseMoved.connect(mouseMoved)
  #         ^^^^^^^^^^^^^  Cannot access attribute "sigMouseMoved" for class "QGraphicsScene"
  #                          Attribute "sigMouseMoved" is unknown
  ```
  
  ### Proposed Solution
  
  I think this can be fixed by adding a type hint to the `GraphicsWidget` class:
  
  ```python
  from typing import TYPE_CHECKING
  
  class GraphicsWidget(GraphicsItem, QtWidges.QGraphicsWidget):
      # ...
      if TYPE_CHECKING:
          def scene(self) -> pyqtgraph.GraphicsScene: ...
  ```
  
  If this seems reasonable, I can draft a PR.
  
  ### Tested environment(s)
  
  * PyQtGraph version: 0.13.5 and 0.13.7
  * Qt Python binding: PyQt6
  * Python version: 3.12.2
  * NumPy version: 1.26.4
  * Operating system: Windows 10
  * Installation method: Poetry
  