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.
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.
"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