Le composant FileDialog de QML renverra une URL du type file:///C:/Users/username/nuxeo sur Windows et file:///home/username/nuxeo sur les autres OS.
L'idée est de supprimer le préfixe "file://" et de normaliser le chemin complet sous Windows (avec le bon séparateur de dossiers).

Donc voici le morceau de code à placer dans le fichier QML, le principal se trouve dans la propriété onAccepted qui appelera to_local_file() avec l'URL du dossier sélectionné :

FileDialog {
    id: fileDialog
    folder: shortcuts.home
    selectFolder: true
    onAccepted: folderInput.text = to_local_file(fileDialog.fileUrl)
}

Et côté Python, la fonction simplissime :

from os.path import abspath

from PyQt5.QtCore import QUrl, pyqtSlot


@pyqtSlot(QUrl, result=str)
def to_local_file(self, url: QUrl) -> str:
    """
    Convert the given QUrl to its local path equivalent.

        >>> to_local_file("file:///home/username/nuxeo")
        /home/username/nuxeo
        >>> to_local_file("file:///C:/Users/username/nuxeo")
        C:\\Users\\username\\nuxeo

    """
    return abspath(url.toLocalFile())

C'est propre et universel. Beau.

Pensez à injecter la function dans le contexte de QML :

QMLContext.setContextProperty("to_local_file", to_local_file)

Source : NXDRIVE-1460: Better handle the path folder selection in account creation.