LabVIEWForum.de
Subpanel und Splitter Pane - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Subpanel und Splitter Pane (/Thread-Subpanel-und-Splitter-Pane)

Seiten: 1 2


RE: Subpanel und Splitter Pane - jg - 08.09.2016 13:23

(07.09.2016 14:03 )GT123 schrieb:  Nun ist es aber so, dass Anlagenrechner 4:3 u. per Remote 16:9... d.h. verschieden Auflösungen vorliegen.
Es soll jedoch immer sinnvoll angpasst warden, z.B. Graphen will man ja immer gross haben...
Ich kenne diese "fit to pane" Thematik von java was ich dort sehr angenehm u. einfach finde und auch sehr stabil läuft.

Wie soll ich dies in LV am besten angehen?

Im Prinzip ist dein Ansatz mit Splitter-Bars und Subpanels der einzig richtige, um in begrenzten Maßen eine Skalierbarkeit einer LabVIEW-Oberfläche hinzubekommen, ohne dass man sich zu Tode programmiert. Da muss man dann halt schauen, was die Automatik so hergibt. Relativ gut funktioniert die automatische Anpassung eines Graphen oder einer Tabelle an die Größe eines Subpanels. Weitere Elemente zu automatisch durch LabVIEW skalieren zu lassen, das geht eher in die Hose.
Was ich auch schon gemacht habe: Wenn das Pane eines SubPanel-VIs zu groß für das Subpanel war, dann eine Scrollbalken anzeigen lassen.

Zuletzt habe ich mit dem NI Front Panel Layout Tool rumgespielt, das funktioniert mit gewissen Einschränkungen ganz gut - zumindest deutlich besser als das automatische Skalieren durch LabVIEW selber.

Gruß, Jens


RE: Subpanel und Splitter Pane - GT123 - 09.09.2016 05:12

(08.09.2016 13:23 )jg schrieb:  Zuletzt habe ich mit dem NI Front Panel Layout Tool rumgespielt, das funktioniert mit gewissen Einschränkungen ganz gut - zumindest deutlich besser als das automatische Skalieren durch LabVIEW selber.

Das Tools ist ganz nett, jedoch nur wenn man alle Objekte gleich skalieren möchte.
Für mich bedeuted es, dass nur die Lösung mit splitter Pane->Subpanel->"fit to pane" in Frage kommt für TabControl und Graph Vis.

Dann muss ich eben aber das Tab Control in ein Subvi auslagern!?
In meinem main.vi (welches aktuell das Tab Control besitzt) ist allerdings eine Event Struktur welche unzählige Events des Controls abarbeitet.
Wie kann ich dies anpassen? Eine Referenz auf das "TabControl Subvi"... aber wie dann auf die event Struktur im main.vi anbinden?


RE: Subpanel und Splitter Pane - jg - 09.09.2016 08:08

(09.09.2016 05:12 )GT123 schrieb:  
(08.09.2016 13:23 )jg schrieb:  Zuletzt habe ich mit dem NI Front Panel Layout Tool rumgespielt, das funktioniert mit gewissen Einschränkungen ganz gut - zumindest deutlich besser als das automatische Skalieren durch LabVIEW selber.

Das Tools ist ganz nett, jedoch nur wenn man alle Objekte gleich skalieren möchte.
Du könntest auch 2 verschiedene Designs entwerfen (4:3 und 16:9) und nur diesen beiden Auflösungen zulassen. Das geht mit dem Tool hervorragend.

Gruß, Jens


RE: Subpanel und Splitter Pane - Morpheus - 09.09.2016 08:35

Du könntest das Tab-Control im Main-VI belassen und beim Ändern der Panelgrösse die Position des Tab-Controls wieder auf die Ursprungskoordinaten setzen.
Ganz elegant finde ich diese Lösung aber nicht.

Gruss
Chris


RE: Subpanel und Splitter Pane - IchSelbst - 09.09.2016 09:50

(09.09.2016 05:12 )GT123 schrieb:  In meinem main.vi (welches aktuell das Tab Control besitzt) ist allerdings eine Event Struktur welche unzählige Events des Controls abarbeitet.
Die Anzahl der Events auf "unzählig" hochzuschrauben ist programmtechnisch gesehen eine schlechte Wahl. Ich nehme mal an, die große Anzahl kommt deswegen, weil du viele einzelne Eingabeelemente für Parameter hast. Besser ist es, die einzelnen Elemente zu Clustern zusammenzufassen. Es dürfen auch Cluster in Cluster entstehen. Durch das Verwenden von Clustern wird die Anzahl der Events dann bestimmt schlagartig kleiner - da immer auf Wertänderung im kompletten Cluster reagiert wird.

Nicht so einfach zu umgehen sind die Events durch Buttons, die eine Aktion starten - aber es ist indirekt möglich: durch Verlagerung in SubVIs. Oft sammelt man in einem VI mehrere Sourcecode-Abschnitte, die von einander unabhängig sind. Solchen unabhängigen Code kann man in SubVIs auslagern und dort bearbeiten. Dann entsteht zwar ein neues Problem: Wie sollen diese SubVIs gehandhabt werden. Aber auch dieses Problem ist lösbar.

Bei deinem Programm könnte ich mir folgendes vorstellen: Einige der Eingaben, die jetzt auf einem TabSheet des TabControls liegen, gehören logisch zu einem deiner bereits bestehenden SubVIs. Was liegt da näher, als die Eingabe dieser Parameter auch in das SubVI zu integrieren?

Zitat:Wie kann ich dies anpassen? Eine Referenz auf das "TabControl Subvi"
Eine Referenz auf das TabControl würde ich nicht machen. Lieber schon eine Referenz auf einen Cluster ...

Zitat:... aber wie dann auf die event Struktur im main.vi anbinden?
Gar nicht.
Man kann auch folgendes machen: Das Eingabeelement sowie die Eventsequenz verbleiben im MainVI. In jedem Event steht dann nur ein einziger SubVI-Aufruf - und weiter überhaupt nichts. Das SubVI ist eine sogenannte FGV: Ihr wird (mindestens) ein Steuerwert (Enumerator) direkt und der Wert aus "Neuer Wert" per Variant übergeben. Alle weiteren Operationen werden dann abhängig vom Enumeratorwert in der FGV gemacht - einschließlich der Anzeige der eben eingegebenen Werte am Eingabeelement. Und hierfür brauchst du die Referenz auf den (strict-typisierten) Cluster.

Hinweis:
Eine FGV hat viele weitere Vorteile.


RE: Subpanel und Splitter Pane - GT123 - 09.09.2016 14:23

Ich werde mich die nächste Zeit mit den vielen Tipps von Euch auseinander setzen.
Vorerst einmal vielen Dank.