GUI-Identität und Anwendungsmenüs¶
Die aktiven MPyLab-Gerätetestprogramme und der Grenzwerteditor verwenden ein kleines Anwendungsicon sowie native About-/Quit-Menüaktionen. About ist nichtmodal, zeigt die installierte Version und Dokumentationslinks und passt das Logo an die Fensterpalette an. Die Messbedienung erhält keinen Logo-Kopf.
Installieren Sie mpylab[gui] für die Qt-Helfer. Die Basisinstallation und
ApplicationIdentity bleiben ohne PySide6 und Shiboken verwendbar.
Gemeinsames Muster verwenden¶
mpylab.gui.ApplicationIdentity enthält projektspezifische Metadaten. Der
Import dieses Moduls lädt kein Qt. Qt-Anwendungen importieren die Helfer
explizit aus mpylab.gui.qt:
from mpylab.gui.qt import create_application, install_branding
app = create_application(["example-tool"])
window = build_window() # zuerst Fenster und Layout erstellen
branding = install_branding(window)
window.show()
app.exec()
Standard ist die MPyLab-Identität. Begleitprogramme übergeben beiden Helfern eine
eigene ApplicationIdentity mit installierter Version, Beschreibung, URLs,
Autor/Lizenz und Paketressourcenpfad. Dort müssen icon.png, logo.svg und
logo-inverse.svg liegen. Herkunftscommit und Lizenz werden daneben
mitgeliefert; Ressourcen müssen sowohl im Wheel als auch im sdist enthalten
sein. importlib.resources lädt sie unabhängig vom Arbeitsverzeichnis und
von einem Quellcheckout.
install_branding akzeptiert vorhandene Menüleisten und About-/Quit-Aktionen.
Ein bisheriger About-Callback muss zuvor getrennt werden. Eine vorhandene
Quit-Aktion behält ihre Verbindung zum normalen Schließpfad. Wiederholte
Installation liefert denselben Controller und fügt keine weiteren Menüs hinzu.
Beenden und macOS¶
Neue Quit-Aktionen rufen window.close() auf. Der vorhandene Schließpfad bleibt
für RF-Off, Worker-Abschaltung, ungespeicherte Ergebnisse und Rückfragen
verantwortlich. Lehnt er das Schließen ab, bleiben Fenster und About verfügbar.
Nach angenommenem Schließen wird About geschlossen. About greift nicht auf
Hardware zu.
create_application muss vor den GUI-Fenstern aufgerufen werden. Unter macOS
setzt es die Cocoa-Bundle-Namen nur im Prozessspeicher, bevor Qt das native Menü
erzeugt; Python-Installation und plist-Dateien werden nicht verändert. Eine neu
erzeugte macOS-Anwendung verwendet Qt-Dialoge, um den mit Qt 6.11.2 auf dem
Entwicklungs-Mac beobachteten Absturz beim Rendern nativer NSAlerts zu vermeiden.
Native Menüs bleiben aktiv. Auch die Dateiauswahl verwendet dadurch unter macOS
Qt-Dialoge. Identität und Dialogeinstellungen eines bereits laufenden
Hostprogramms bleiben unverändert.
Das Qt-Standardkürzel für Quit ist Command-Q unter macOS und Ctrl-Q auf den anderen unterstützten Desktop-Plattformen. macOS ordnet About/Quit dem nativen Anwendungsmenü zu; sonst bleiben File/Quit und Help/About sichtbar.
Prüfung und Übernahme¶
Tests verwenden virtuelle Geräte und prüfen Ressourcen, Farbwechsel, wiederholtes About, abgelehntes/angenommenes Schließen und Geräteabschaltung. Zusätzliche native macOS-Prüfungen sind erforderlich: Qt-Offscreen-Tests prüfen keine Cocoa-Menüs oder -Alerts. Vor Veröffentlichung wird ein installiertes Wheel außerhalb des Checkouts geprüft. GUI-Branding ist keine Hardwarefreigabe.
Begleitprogramme dürfen die Helfer erst mit einer veröffentlichten MPyLab-Version, die diese enthält, als Mindestabhängigkeit übernehmen. Zunächst die editierbaren Checkouts lokal testen, dann MPyLab vor den abhängigen Programmen veröffentlichen.
Die API steht unter User-interface and worker API, Sicherheit und Worker unter UI-Adapter und Worker-Schnittstelle.