WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Scrollbar bei GUI mit resize-Funktion

 

DerThomas
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 04.01.11
Wohnort: Ludwigsburg
Version: R2010a
     Beitrag Verfasst am: 24.01.2011, 10:56     Titel: Scrollbar bei GUI mit resize-Funktion
  Antworten mit Zitat      
Hallo zusammen,

Ich habe eine relativ große GUI entworfen, welche 1220 x 820 Pixel hat. Für Bildschirme mit geringerer Auflösung dachte ich daran, dass die GUI durch eine "resize"-Funktion in ihrer Größe angepasst werden kann.
Wenn man diese jedoch kleiner macht, wird nicht mehr alles angezeit und es fehlen noch links und unten jeweils ein "Scrollbar", der es möglich macht nach links und rechts, unten und oben zu scrollen.

Kann mir jemand sagen wie ich sowas implementieren könnte?

Code:
% Main figure des GUI
fh = figure('Name','Getriebeauslegung GUI',...
            'NumberTitle', 'off',...
            'Position',[scrsz(3)/2-610 scrsz(4)/2-415 1220 820],...
            'Resize', 'on',...
            'MenuBar', 'none',...
            'Toolbar', 'none',...
            'Visible','off');
 



Viele Grüße Thomas
Private Nachricht senden Benutzer-Profile anzeigen


Schäfchen
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 23.01.11
Wohnort: Karlsruhe
Version: 2008 a, 2010b
     Beitrag Verfasst am: 24.01.2011, 11:00     Titel:
  Antworten mit Zitat      
so direkt in Matlab ist das leider nicht vorhanden.
Aber schau dir mal folgendes an:

http://www.mathworks.com/matlabcent.....253-scrolling-figure-demo
Private Nachricht senden Benutzer-Profile anzeigen
 
DerThomas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 04.01.11
Wohnort: Ludwigsburg
Version: R2010a
     Beitrag Verfasst am: 24.01.2011, 13:24     Titel:
  Antworten mit Zitat      
uiuiui... das sieht kompliziert aus Very Happy

ich glaube sooo wichtig ist mir das dann nicht Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 24.01.2011, 13:59     Titel:
  Antworten mit Zitat      
Hallo

1) du sollst einfach die Property Unit auf normalized setzen.
Dann werden die GUI-Objekte automatisch an die Auflösung skaliert.
Das muss man aber für jeden graphischen Objekt machen.

2) GUI soll am besten in der geringsten Auflösung entwickelt werden.

3) was du dir merken muss, ist das Verhältnis zwischen Höhe und Breite, dieses Verhältnis muss dann zwischen Auflösungen immer beibehalten werden, damit keine Verzehrungen auftreten.
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 24.01.2011, 20:36     Titel:
  Antworten mit Zitat      
Hey,

das Problem ist einfach, wenn man solch eine Scrollbar mit den Matlabmöglichkeiten implementiert (Matlab Guiobjecte), dass es je nach Größe der Gui durchaus mit mehr Rechenaufwand verbunden ist. Alternativ kann man eine Oberfläche komplett mit Javaobjecten aus Matlab heraus erzeugen. Da kann man jedem Panel nach Lust und Laune Scrollbars hinzufügen ohne resizefcn zu schreiben. Zudem funktioniert das dann auch wunderbar (acuh als exe Anwendung)...

So hab ichs bei meiner MainGui gemacht und bin auch froh darüber...

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
DerThomas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 04.01.11
Wohnort: Ludwigsburg
Version: R2010a
     Beitrag Verfasst am: 25.01.2011, 10:35     Titel:
  Antworten mit Zitat      
denny hat Folgendes geschrieben:
Hallo

1) du sollst einfach die Property Unit auf normalized setzen.
Dann werden die GUI-Objekte automatisch an die Auflösung skaliert.
Das muss man aber für jeden graphischen Objekt machen.

2) GUI soll am besten in der geringsten Auflösung entwickelt werden.

3) was du dir merken muss, ist das Verhältnis zwischen Höhe und Breite, dieses Verhältnis muss dann zwischen Auflösungen immer beibehalten werden, damit keine Verzehrungen auftreten.


Hallo denny,

die Property Unit auf normalized zu stellen, ist gar keine schlechte Sache. Auch wenns n bisschen aufwendig ist, da ich über 100 grafische Objekte in meine GUI eingebaut habe. Werde das aber wohl doch so umsetzen.

Für Punkt 2 deiner Liste ist es wohl doch ein bisschen spät. Werde das ganze nicht mehr so umbauen.
Mit normalized wäre das auch kein Problem, denke ich. Wünschenswert wäre dabei nur noch, dass das Breiten-/Höhen-Verhältnis meiner GUI immer gleich bleibt wenn ich es mit der resize-function verändere. Weißt du wie ich das bewerkstelligen könnte?

Wie dein dritten Punkt in die Programmierung einfließen kann, weiß ich leider auch nicht...


Zitat:
Alternativ kann man eine Oberfläche komplett mit Javaobjecten aus Matlab heraus erzeugen.


Wie geht denn sowas? Shocked



Wahrscheinlich langweilen meine Fragen euch, aber ich habs halt net drauf Rolling Eyes Wink


Danke euch!
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 25.01.2011, 11:08     Titel:
  Antworten mit Zitat      
Hey,

z.B. so wie ich es in der Datei im Anhang gemacht habe. Ist aber kein optimales Beispiel, da ich jetzt auf die Schnelle keine Zeit hab etwas neues zu erstellen. Aber vom Prinzip her sollte es reichen. Man kann aber jedem jPanel jScrallbars hinzufügen, die z.B. mit

Code:

TextScrollPane.setVerticalScrollBarPolicy(TextScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
 

gesetzt werden was heist, dass diese nur eingeblendet werden wenn sie benötigt werden...

Natürlich muss man sich dann mit Java auseinander setzen und den GUIDE kann man auch nicht nutzen. Soll heißen alles ist Handarbeit. Zudem weiß ich gerade auch noch nicht ob es überhaupt möglich ist axes hinzuzufügen, aber da gibs in Java auch passende .jar Dateien die man einbinden kann...

Ist natürlich viel Arbeit...

MfG Marco

Edit:
Achja anbei habe ich auch noch ein Screenshot meiner Maingui um zu zeigen wie es aussehen könnte. Wie oben beschrieben läuft alles sehr flüssig...

ViewScrallBars.JPG
 Beschreibung:

Download
 Dateiname:  ViewScrallBars.JPG
 Dateigröße:  74.55 KB
 Heruntergeladen:  1499 mal
TestJava.m
 Beschreibung:

Download
 Dateiname:  TestJava.m
 Dateigröße:  4.65 KB
 Heruntergeladen:  846 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
DerThomas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 04.01.11
Wohnort: Ludwigsburg
Version: R2010a
     Beitrag Verfasst am: 25.01.2011, 16:31     Titel:
  Antworten mit Zitat      
Schicke Sache Cool


Habe übrigens mittlerweile alles in normalized umgeschrieben ... war echt viel Arbeit immer das Verhältnis auszurechnen, aber nun siehts aus wie vorher...

Aber nochmal zurück zu meiner Frage. Kann mir jemand sagen, wie ich das Breiten/Höhen-Verhältnis sperren kann bei der Verwendung der Resize-Funktion?
Das wäre nämlich prima Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.