ich möchte einen Teil meiner GUI dynamisch anpassen. Wenn ich eine Auswahl mit einem Radiobutton treffen soll ein Panel mit anderen Auswahlmöglichkeiten aufgehen. Dazu habe ich das folegende Skript geschrieben. Es funktioniert soweit, aber ich möchte natürlich noch das abgewählte Panel löschen, mit all seinem Inhalt. Das bekomme ich aber nicht hin. Ich verstehe da leider auch nicht, wie ich den Objekthandler ansprechen kann, da ich das Objekt in einer anderen Funktion erstellt habe.
aber ich möchte natürlich noch das abgewählte Panel löschen, mit all seinem Inhalt
Wirklich löschen oder kann es reichen, das unsichtbar zu machen?
Zitat:
Das bekomme ich aber nicht hin.
Wie hast du es denn versucht und welche Probleme sind dabei aufgetreten?
Ich würde delete versuchen, oder 'visible' auf 'off' stellen, s.o.
Zitat:
Ich verstehe da leider auch nicht, wie ich den Objekthandler ansprechen kann, da ich das Objekt in einer anderen Funktion erstellt habe.
Ich verstehe nicht mal, was du damit (insbesondere mit "Objekthandler") meinst.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
vielen Dank für die schnelle Antwort. Ich möchte die GUIs wechseln können.
Zitat:
Wirklich löschen oder kann es reichen, das unsichtbar zu machen?
Eigentlich wäre ein unsichtbar machen sogar besser. Dann muss ich eben nur prüfen, ob die GUI-Objekte schon erstellt sind, damit ich beim Wechsel zwischen den Ansichten nicht immer neue generiere.
Zitat:
Ich verstehe nicht mal, was du damit (insbesondere mit "Objekthandler") meinst.
Nun wenn ich delete verwende, muss ich das Objekt welches ich löschen möchte ja benennen. Dieses geschieht doch über den Handle, der sowas wie ein Pointer auf das Objekt ist, oder?
Dann muss ich eben nur prüfen, ob die GUI-Objekte schon erstellt sind, damit ich beim Wechsel zwischen den Ansichten nicht immer neue generiere.
Ich würde stattdessen von Anfang an alle Ansichten generieren und sie nur anfangs evtl. nicht sichtbar machen.
Zitat:
Nun wenn ich delete verwende, muss ich das Objekt welches ich löschen möchte ja benennen.
Ja, dazu musst das Handle in der Funktion zur Verfügung stehen - oder du arbeitest mit Tags.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
die Idee alle Ansichten zu erstellen und nur die Sichtbarkeit zu ändern finde ich super. Auf diese Weise gehen auch ggf. eingegebene Daten beim Umschalten nicht verloren.
Mit Tags habe ich gut Erfahrungen gemacht, ich glaube das bekomme ich hin.
Verfasst am: 10.03.2024, 15:55
Titel: Panel with auto-reflow
Hallo,
die einfachste und zugleich eleganteste Lösung ist die Auswahl einer 2-panel-App with auto reflow. Deren Vorlage kann man im App-Designer auswählen.
Dann kann man zum linken Panel noch eine Tab-Group -z.B. am oberen Rand- hinzufügen. Auf den einzelnen Tabs kann man dann jeweils unterschiedliche Eingabelemente unterbringen. Diese bleiben beim Wechsel des Tabs erhalten. Auch kann man die Breite des linken Panels einstellen.
Beim Vergrößern der laufenden App bleibt die horizontale Größe des linken Panels erhalten, während das rechte Panel maximal erscheint. Das ist eine optimale Situation für die Erstellung von Grafiken: Im linken Panel stellt man auf verschiedenen Reitern die Elemente ein während im rechten Panel die jeweils zugehörige Grafik erscheint.
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.