Migration Woes Moving from Classic on Py2.7 to Phoenix on Py3.8 on Debian Linux

Need help figuring out where we went wrong.
I’ve inherited a Linux project from a senior coder and it was decided to port to Phoenix and Python3.
And now everything’s broken. #MistakesWereMade
Noticeable issues:

  1. wxBitmapButtons now have borders creeping in over the bitmap.
  2. GenButtons, when disabled, become flat hollow-looking text-boxes.
  3. Trying to make text bold no longer works, but using an already bold font does.
  4. Overriding parent Foreground/Background colors in children widgets is iffy.
  5. The standard guage displayed a tiny bar inside a larger window where as the PyGuage worked fine, but needed manual calls to Refresh.
  6. All the lazy text type-spacing and poorly-sized label controls my predecessor was able to get away with are no longer as forgiving. (This is more our fault, but wow, the old version was forgiving.)

Regular wxWidgets windows from C++ sources render correctly though.
How can I diagnose the errors here? (Removed question on GTK+ correctness. Browsed through wx folder in python site-packages.)

Similar results were observed on an embedded Linux device using custom compiled Python and wxPython as well as my Linux workstation using more “official” binaries. I’m not sure if it’s important, but I believe I was using LightDM in both instances.

Many thanks,

At least some of the differences you are seeing may due to also switching from a gtk2 backend to the gtk3 port.

I’ve found that things like your “more forgiving” -related issues tend to fall into the category of doing something incorrectly but in a way that happens to work in specific cases and/or ports. One of the core wxWidgets developers tends to put it this way, “We can ensure that things done correctly will succeed in the same way on each of the platforms, but we can not guarantee that doing something incorrectly will fail in the same way, or even fail at all, on each of the platforms.”

My suggestion is to try resolving issues in isolation, because working on them in the whole application with lots of problems tends to distract you so much that it’s tough to get any of them resolved. So make a new, small, runnable application for each widget or small set of widgets that are giving you trouble, so you can more easily experiment with it and find what works for your main application’s needs.