There was a wxPython project called ‘pyslip’ which was designed to display maps, including from OpenStreetMap. I don’t know if it provides any facilities for handling GPX tracks.
It says:
During my work writing geophysical applications in python I often wanted to display a map that was very large - many hundreds of thousands of pixels in width. I searched around for a GUI solution that would work rather like Google maps: tiled, layers, etc. I couldn’t find anything that didn’t assume browser+map server. So I wrote my own wxPython widget. This worked well for cartesian self-generated maps and has been extended to handle non-cartesian maps and tiles sourced from places like OpenStreetMap.
It was last updated in June 2019. However, the link on its PyPI page to a Home page on GitHub is broken, so it is likely that it is no longer maintained.
However, pyslip was ported to use PyQt and its GitHub repo still exists: