|
|
GUI Resize nur bis zu bestimmter Fenstergröße |
|
Knappe Franz |
Forum-Anfänger
|
|
Beiträge: 24
|
|
|
|
Anmeldedatum: 07.04.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.11.2011, 23:01
Titel: GUI Resize nur bis zu bestimmter Fenstergröße
|
|
|
|
|
Hallo!
Ich habe eine GUI, die ich rezisable gestaltet. Es sind grob ein Panel und zwei Axes darauf, aber das spielt keine Rolle.
Jetzt macht es ja wenig Sinn, dieses Fenster unter z.B. 600x400 Pixel zu skalieren. Ich stelle mir nun gerade die Frage, wie ich so etwas realisieren kann, dass der Nutzer das Fenster nicht unter diese größe stellen kann.
Zum Testen habe ich mir einfach ein Fenster ohne Inhalt genommen und folgende Resize-Fct eingefügt:
Jetzt zeigt dieses Fenster ein eigenartiges Verhalten:
Wenn ich das Fenster vom unteren oder rechten Rand her skaliere, kann ich es beliebig klein schieben, wobei es beim Loslassen des Mauszeigers auf die angegeben Größe zurückspringt.
Problematischer ist es, sobald ich von oben oder links das Fenster zusammenschiebe. Dann weicht das Fenster aus, sobald ich die angegebene Grenze erreiche. D.h. von der aktuellen Mausposition aus werden die 600 in der Breite z.B. draufgepackt. Das führt schnell zu einem Absturz von Matlab, selbst bei dieser simplen GUI.
Diese Absturzgefahr ist nun der Grund, warum ich das nicht ein meine eigentlich GUI einbauen will.
Was ich mir eigentlich wünschen würde, wäre, dass bei erreichen meiner definierten Fenstergröße das Fenster so bleibt wie es ist, egal, ob sich der Mauszeiger noch weiter in das Fenster hineinbewegt.
Habt ihr eine Idee, wie ich das realisieren könnte?
Ich habe an die WindowButtonMotionFct gedacht, jedoch wird die ja immer ausgeführt, egal ob ich jetzt gerade das Fenster verkleinern will oder nicht.. Das dürfte ein bisschen arg rechenaufwendig sein..
Danke für eure Vorschläge!
Grüße
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 14.11.2011, 00:12
Titel: Re: GUI Resize nur bis zu bestimmter Fenstergröße
|
|
Hallo Knappe Franz,
Wenn Du vor undokumentierten Funktionen nicht zurückschreckst:
Hübsch finde ich das immer noch nicht. Es wäre griffiger, wenn sich das Fenster beim Erreichen der Limits nicht weiter verkleinern würde.
Gruß, Jan
|
|
|
Knappe Franz |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 24
|
|
|
|
Anmeldedatum: 07.04.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.11.2011, 11:11
Titel:
|
|
Hallo Jan!
Danke für den Code! Auf den ersten Blick sieht das schon mal sehr vielversprechend aus! Also bei mir bleibt das Fenster genau an der Grenze stehen, genauso, wie ich mir das vorgestellt hab Sehr sehr gut!
Jetz muss ich nur noch schauen, wie ich das in meine bestehende GUI einbaue.. Aber das muss leider warten, wichtigere Projekte stehen an.
lg, Franz
EDIT: Okay, habs in der GUI erfolgreich drin. Ich habs direkt an den Anfang der Resize-Fct gesetzt. Ist das ein nachteiliger Ort (z.B. in Sachen Performance?) Funktionierts auch an anderer Stelle?
Allerdings meckert Matlab, dass diese Funktion in einem der nächstes Releases abgestellt werden wird:
http://www.mathworks.com/support/contact_us/dev/javaframe.html
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 14.11.2011, 23:30
Titel:
|
|
Hallo Knappe Franz,
Das in die resizeFcn zu packen ist sehr ineffizient. Es muss nur ein einziges Mal laufen, also passt es besser in die CreateFcn.
Bekommst Du wirklich die Warnung für "get(handle(FigH), 'JavaFrame');" - also mit "handle()"? Welches Matlab-Version verwendest Du?
Gruß, Jan
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|