This is a kind of weird issue that you hopefully won’t run into very often, but basically:
Qt is a “library” (a fancy word for “reusable code”) that allows people to make graphical user interfaces for applications. Programs often use Qt to create buttons, text boxes, check boxes, etc. In order to display windows with UI elements like this, Qt has to talk to a thing called a “display server”, which is the application that actually does things to the pixels on your screen. Only one application can be in charge of drawing things on the screen, but most people use multiple GUI apps at once, so a display server’s job is to allow other apps to talk to it, and then it handles drawing the application windows to the screen.
There are basically two kinds of display servers under Linux, X11 and Wayland. The two do pretty much the same job in different ways, with X11 being the older, less secure way of doing things and Wayland being the newer, more secure way. The code needed to talk to these two kinds of display servers is dramatically different because the servers speak a different “language” under the hood, so in order to be compatible with both, Qt has bits of code that acts adapters between the display server and the rest of the Qt library.
What went wrong here is that the Monero GUI appears to contain an embedded copy of Qt that only has the X11 adapter. Whonix 18 uses a Wayland display server, and tries to tell all applications to use the Wayland adapter for security reasons. When you try to launch the GUI, the version of Qt bundled inside of the Monero GUI says “whoops, I don’t have a Wayland backend, guess I’d better tell the user about that!” and you get an error message.
The export QT_QPA_PLATFORM=xcb bit tells Qt to use the X11 backend instead. On the surface, this sounds totally ridiculous, because if X11 and Wayland are so different, surely the X11 adapter isn’t going to work on Wayland! Well, that’s true, but there’s yet another piece of “adapter” software involved called Xwayland. This is an X11 server that talks to a Wayland display server and basically translates messages from the X11 “language” to the Wayland “language”. This way X11-only applications can still display windows when using a Wayland desktop.
Putting it all together, the application now uses Qt to draw its window, Qt uses its X11 adapter to talk to Xwayland, Xwayland talks to the Wayland server, and then the Wayland server puts pixels on your screen. It’s a lot of layers, but it works.