Buttons on transparent background with click-through

Hi all,

I spent quite some time searching but I couldn’t find a way how to really do this in a proper way.
I want to port my C# WPF application to Python with wxPython.
My application is kind of an overlay with buttons, i’d call it “on-screen controls”. Those buttons are activated by hovering over them. The purpose is to help people with disabilities to e.g. play games that require wasd keys by an eyetracker(which is used to move the cursor).

This means, I have a transparent container which is always-on-top and click-through to the app/game below. In this container, there are buttons which are NOT transparent and non-click-through.

I currently have a Frame->Panel->(Buttons…) architecture in wxPython (i manually draw the button shapes)

My problem is:
If I set my Frame to transparent, the Buttons will be transparent too
I cannot click through transparent parts

Can you please guide me on how to build the UI? I don’t need code, but just to know the way, how its realized in wxPython.
One idea I had was to change my Panel in a way to only draw my buttons. But I could not find out how I would specify that only my buttons (which are round, not rects) are drawn on their respective positions. I tried using Region but i either did it wrong or it isnt possible to define different, non-rect Regions all over the screen to draw separetely?

Thank you so much

Take a look at the ShapedWindow sample in the demo. If you create a region, or a bitmap that can be converted to a region, that makes everything in your window transparent except for the buttons, then I think it will do what you are trying to accomplish.

Thank you.
This way seems to work:

frame = wx.Region(FRAME.GetClientRect())
new_shape = wx.Region(FRAME.GetClientRect())
for key, value in buttons.items():
    r = wx.Region(value.btn.GetRect())
    frame.Subtract(r)
new_shape.Subtract(frame)
FRAME.SetShape(new_shape)