Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Hallo zusammen,
ich bin Neueinsteiger und möchte nun die Oberfläche von meiner Applikation erstellt. Leider ist es mir nicht gelungen die Oberfläche proportional an die Bildschirmgröße anzupassen. Ich habe auch in diesem Forum gelesen das es nicht möglich Scrollbalken auf Tabs zu platzieren. Auf dem einen Tab läuft die Messwerterfassung im anderen Tab kann ich die gespeicherten Daten einlesen und Analysieren.
Welche Möglichkeiten bieten sich mir bzw. alternativen. Ich habe die Oberfläche mit im Anhang und verwende LV2011.
Anzeige
12.11.2011, 22:31 (Dieser Beitrag wurde zuletzt bearbeitet: 12.11.2011 22:33 von unicorn.)
Bei den Frontpanel-Elementen kann die Option "Scale with Pane" gesetzt werden. Damit vergrößern und verkleinern sie sich proportional zur Fenstergröße. Zusätzlich könnte man noch Spitter einsetzen, die das Fenster in unterschiedliche Bereiche aufteilen. Damit kann man erreichen, dass sich die Leiste links nicht ändert, wärend der Bereiche sich rechts ändert. Mit dem Splitter kann man pauschal für alle Elemente das Skalieren ein- und ausschalten.
Wenn sich Elemente in der Größe nicht ändern sollen, aber drumherum ein Rahmen mit Scrollbalken sein soll, wenn das Fenster zu klein für alle Elemente ist, so müsstest Du ein Subpanel einsetzen. In einem Subpanel wird ein VI angezeigt (das die nicht zu skalierenden Elemente auf seinem Frontpanel hat), dessen Ausschnitt über die Scrollbalken des Subpanels gewählt wird.
Nebenbei bemerkt, kann man zur Laufzeit verschiedene VIs in das SubPanel laden.
@unicorn
wenn ich dich richtig verstanden habe, macht es keinen Sinn einen Graphen auf ein Tab zu platzieren. Da ich entweder nur das Tab oder den Graphen auf die Bildschirmgröße anpassen kann.
Wenn ich aber hier, wie in meinem Bespiel (2 Register Tabs) habe und diese auf 2 Seiten aufteilen muss wie mache ich das? Meine Idee, Die beiden Programmteile (messen und laden) wieder trennen und diese dann jeweils in Unterpanelen (seite1 seite2) anzeigen lasse. Und dort die entsprechende Einteilung über Trennbalken mache. Ist das der Weg?
(16.11.2011 08:53 )Hubert R. schrieb: @unicorn
wenn ich dich richtig verstanden habe, macht es keinen Sinn einen Graphen auf ein Tab zu platzieren. Da ich entweder nur das Tab oder den Graphen auf die Bildschirmgröße anpassen kann.
Wenn ich aber hier, wie in meinem Bespiel (2 Register Tabs) habe und diese auf 2 Seiten aufteilen muss wie mache ich das? Meine Idee, Die beiden Programmteile (messen und laden) wieder trennen und diese dann jeweils in Unterpanelen (seite1 seite2) anzeigen lasse. Und dort die entsprechende Einteilung über Trennbalken mache. Ist das der Weg?
Gruß Hubert
Eine Möglichkeit habe ich vergessen: in den VI-Eigenschaften kann man einstellen, dass sich alle Frontpanelelement mit der Panegröße ändern. Damit, denke ich, ließen sich Deine Vorstellungen realisieren, oder?
Generell tritt jedoch beim Panegröße Ändern, dass Problem auf, dass sich die Element unschön gegeneinander verschieben, wenn die Pane einmal zu klein wurde.
Die Trennbalken lassen sich nur im VI und nicht in der Tabstruktur einsetzen.
@unicorn
Danke für deine Antwort. Über die Vi-Einstellungen habe ich es getestet. Sieht soweit ganz gut aus. Nur wie du schon geschrieben hast, verschiebt es die Bedienelemente wenn der Pane zu klein wird. Gibt es eine Möglichkeit z.B. über Eigenschaftsknoten das Fenster auf eine minimale Größe zu setzen z.B. 1024x768 o. 800x600. Größer ja, kleiner nein?
Schade das es keine Möglichkeit wie in Html gibt, über Tabellen seine Elemente zu platzieren.
Und wie gerade sehe kann man in LV2011 auch die Größe über Eigenschaftknoten verändern. Damit könntest Du die gewünschte Funktionalität "zu Fuß" programmieren. Das Manko des Verschiebens von Control beim mehrfachen hin und her skalieren ließe sich dadurch vermeiden, dass man zu Programmstart Größe und Positionen von allen Elementen speichert und ausgehend von diesen Werten proportional zur aktuellen Fenstergröße zu Ursprungsgröße skaliert. LV skaliert scheinbar ausgehend von den letzten gerundeten Werten, was unweigerlich zu Abweichungen führt.
@unicorn
Danke für deine Hinweise, die haben mir zum Teil geholfen und sorry wenn es bei mir immer mit der Antwort etwas dauert. Ich habe nun die Tabs umgebaut, so das die darauf platzierten Elemente sich der Fenstergröße anpassen. Meine frage nun, ist es so richtig wie ich es mache oder was muss ich noch bedenken wo können Schwierigkeiten auftreten?
Gruß Hubert
"in LV2011 auch die Größe über Eigenschaftknoten verändern"
welcher und wo ist der, habe ihn nicht gefunden.
Grundsätzlich ist das IMHO die richtige Richtung.
Die VIs in den Subpanels passen sich durch die Splitterbars gut an. Jetzt noch die Splitterbars durch die richtige Farbwahl "unsichtbar" und nicht verschiebbar machen, dann hast du in den Subpanel-VIs Ruhe.
Wenn du nur das Tab als Control hast, stell das doch auch auf "Fit to Pane". Dann musst du dich nicht per PropertyNodes um das Resizing kümmern. Oder pack in ein eigenes Pane, getrennt durch Splitterbars.
Und dann noch das "Auto Grow" im Tabcontrol entfernen, sonst bekommst du Ärger mit der Größenänderung der Subpanels.
Ungefähr so: