Convertir automatiquement en fichier py lorsque le fichier ui est mis à jour par PySide

Si vous utilisez QtDesigner pour créer un fichier .ui, vous devrez le convertir en fichier py avec pyside-uic à chaque mise à jour du fichier, ce qui est très ennuyeux.

Lorsque le fichier ui est mis à jour, écrivez un script qui le convertit automatiquement avec pyside-uic.

Utilisez le module de surveillance

La surveillance des mises à jour de fichiers est un module très pratique qui utilise le module de surveillance. L'installation est facile avec pip.

pip install watchdog

Ensuite, créez un fichier appelé watchdog_uic.py dans le répertoire racine où se trouve le fichier ui.

#! usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals, print_function, absolute_import
import os
import time
import subprocess
from watchdog.observers import Observer
from watchdog.events import PatternMatchingEventHandler

BASE_DIR = os.path.abspath(os.path.dirname(__file__))


class UicHandler(PatternMatchingEventHandler):
    def on_modified(self, event):
        ui_file = event.src_path
        output_file = os.path.splitext(ui_file)[0] + "_ui.py"
        cmd = " ".join([
            "pyside-uic",
            "-o " + output_file,
            ui_file
        ])
        print(cmd)
        subprocess.call(cmd, shell=True)


def main():
    while True:
        event_handler = UicHandler(["*.ui"])
        observer = Observer()
        observer.schedule(event_handler, BASE_DIR, recursive=True)
        observer.start()
        try:
            while True:
                time.sleep(1)
        except KeyboardInterrupt:
            observer.stop()
        observer.join()


if __name__ == "__main__":
    main()

Dans l'exemple ci-dessus, le fichier .ui est remplacé par la convention de dénomination _ui.py. Veuillez implémenter les règles de dénomination par vous-même.

python watchdog_uic.py

Si vous démarrez ce script, il surveillera et convertira tous les fichiers d'interface utilisateur dans le répertoire sous le fichier de script.

J'utilise Watchdog pour la conversion automatique depuis environ six mois, mais il est trop facile de revenir à la conversion manuelle.

Postscript 06/01/2017

"L'environnement de développement PySide / PyQt le plus puissant est également PyCharm" a écrit comment convertir automatiquement sur PyCharm. Veuillez vous y référer également.

Recommended Posts

Convertir automatiquement en fichier py lorsque le fichier ui est mis à jour par PySide
Convertir un fichier psd en png en Python
Comment spécifier un fichier .ui dans la boîte de dialogue / interface graphique du widget dans PySide
Convertir jupyter en py
Insérer un tampon de type dans Sublime Text (mis à jour automatiquement lors de l'enregistrement)
Convertir un fichier Excel en texte en Python à des fins de comparaison
Convertir le HTML en fichier texte
Convertir le fichier genbank en fichier gff
Acquérir automatiquement le journal des opérations dans le terminal lors de la connexion à Linux
[Python] Lorsque vous souhaitez utiliser toutes les variables dans un autre fichier
Comment spécifier un fichier .py à charger au démarrage dans IPython 0.13
Comment s'améliorer lorsque l'éditeur de Spyder est très lourd dans Mavericks
Que faire lorsque le type de valeur est ambigu en Python?
Convertir Markdown en PDF en Python
Comment convertir 0,5 en 1056964608 en un seul coup
Exécuter automatiquement des tests lors de l'enregistrement des fichiers
Que faire lorsque le résultat téléchargé via scrapy est en anglais
Lisez le fichier CSV avec Python et convertissez-le en DataFrame tel quel
Que faire lorsque l'avertissement "L'environnement est cohérent ..." apparaît dans l'environnement Anaconda
python Comment notifier automatiquement par téléphone lorsque le système tombe en panne
Que faire lorsqu'un message d'avertissement est affiché dans la liste des pip