Wenn Sie QtDesigner zum Erstellen einer .ui-Datei verwenden, müssen Sie diese jedes Mal, wenn Sie die Datei aktualisieren, in eine py-Datei mit pyside-uic konvertieren, was sehr ärgerlich ist.
Wenn die UI-Datei aktualisiert wird, schreiben Sie ein Skript, das sie automatisch mit pyside-uic konvertiert.
Die Überwachung von Dateiaktualisierungen ist ein sehr praktisches Modul, das das Watchdog-Modul verwendet. Die Installation ist mit pip einfach.
pip install watchdog
Erstellen Sie als Nächstes eine Datei mit dem Namen watchdog_uic.py im Stammverzeichnis, in dem sich die UI-Datei befindet.
#! 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()
Im obigen Beispiel wird die .ui-Datei in die Namenskonvention _ui.py geändert. Bitte implementieren Sie die Namensregeln selbst.
python watchdog_uic.py
Wenn Sie dieses Skript starten, werden alle UI-Dateien im Verzeichnis unter der Skriptdatei überwacht und konvertiert.
Ich benutze Watchdog seit ungefähr einem halben Jahr für die automatische Konvertierung, aber es ist zu einfach, zur manuellen Konvertierung zurückzukehren.
"Die stärkste PySide / PyQt-Entwicklungsumgebung ist auch PyCharm" hat geschrieben, wie PyCharm automatisch konvertiert wird. Bitte beachten Sie auch dies.
Recommended Posts