When calling update() explicitly in transparent widget it doesn't clear background before paintEvent on Mac. Erasing works fine for example resizing window that updates widget. Test with attached example by resizing painted rectangle in transparent window. Old painted rectangle is not erased until resizing the window. Same code works fine on Windows so should work also on Mac.
There's also workaround to erase rect before painting other items: