"Fenster" sind kein eigenständiges Konzept in Qt. Fenster sind angezeigte QWidgets, die keinen Parent haben. Die Kommunikation zwischen Widgets erfolgt üblicherweise über Signale und Slots, die hast du schon verwendet. Soweit gut :-)
OptionsGUI kann zum Beispiel ein Signal verwenden, in dem die ausgewählten Ordner als Stringliste enthalten sind. MediaLibrary kann auf dieses Signal verbinden.
Wichtig ist zu wissen, dass im Single-Thread-Fall (wie hier im Beispiel) Slot-Aufrufe synchron sind. Das heisst, wenn in OptionsGUI::close ein "emit selectedFolders(Folders);" ausgeführt wird, wird der entsprechende Slot in MediaLibrary ausgeführt, bevor das emit-Statement zurückkehrt.
OptionsGUI könnte sich auch den Zeiger auf MediaLibrary merken. Das würde aber eine Kopplung der beiden Klassen bedeuten, die vielleicht unnötig ist.