qualcuno sa come usare il metodo del modulo 'uic' di PyQt 'compileUiDir'?

0

Non trovo la docstring molto chiara:

def compileUiDir(dir, recurse=False, map=None, **compileUi_args):
    """compileUiDir(dir, recurse=False, map=None, **compileUi_args)

    Creates Python modules from Qt Designer .ui files in a directory or
    directory tree.

    dir is the name of the directory to scan for files whose name ends with
    '.ui'.  By default the generated Python module is created in the same
    directory ending with '.py'.
    recurse is set if any sub-directories should be scanned.  The default is
    False.
    map is an optional callable that is passed the name of the directory
    containing the '.ui' file and the name of the Python module that will be
    created.  The callable should return a tuple of the name of the directory
    in which the Python module will be created and the (possibly modified)
    name of the module.  The default is None.
    compileUi_args are any additional keyword arguments that are passed to
    the compileUi() function that is called to create each Python module.
    """

per quanto riguarda l'argomento della parola chiave della mappa e non esiste un semplice esempio per utilizzarlo.

Si aspetta un argomento sulla mappa? come in:

uic.compileUiDir("ui/", map=("ui/", "../widget/test.py"))

e come si forma?

In pratica ho un paio di file .ui nella directory ui e desidero compilarli e posizionare i file .py risultanti in un'altra directory chiamata widget .

Hanno nomi come test1Widget.ui , test2Widget.ui , ecc. e vorrei che fossero rinominati in test1.py , test2.py , ecc.

Qualcuno può darmi dei consigli per favore?

    
posta Cybran 18.02.2014 - 13:12
fonte

1 risposta

0

ok, quindi ho frainteso la docstring.

Dichiara che è richiesto un callable (necessario leggere su callables!) che contiene la directory originale con il nome del file .ui e restituisce la directory di destinazione con il nome del file di destinazione.

Ecco il codice per questo e funziona bene! :)

    def rename_and_move_callable(directory, file_name):
        return directory.replace("ui/", "widget/"), file_name.replace("Widget.py", ".py")

    uic.compileUiDir("ui/", map=rename_and_move_callable)

Quindi, ho la denominazione dell'output e la struttura delle directory che ho richiesto.

Ho sicuramente imparato qualcosa di nuovo oggi e spero che aiuti qualcun altro a risolvere lo stesso problema!

Pace

    
risposta data 18.02.2014 - 16:10
fonte

Leggi altre domande sui tag