2012-12-05 8 views
5

Ich verwende Matlab R2012a (7.14.0.737) 64-Bit auf einem Windows 7 PC. Ich habe 2 Monitore. Ich möchte in der Lage sein, eine Matlab-GUI-Figur auf dem zweiten Monitor (auf der linken Seite) zu öffnen.GUI-Figur nicht auf Dual-Monitor öffnen, aber andere Zahlen sind in Ordnung

an der Befehlszeile Öffnungszahlen funktioniert es gut.

h = figure(... , 'position',[some -value on the other screen y w h) 

aber die GUI Figur ist auf dem 1. Monitor trotz 1) der richtige Position eingegebenen Werte in die GUI-Fenstereigenschaften und/oder 2) mit dem Code

set(hObject, 'position',[some -value on the other screen y w h) 

in der GUI Öffnung immer gemacht Funktion.

Allerdings, wenn ich diesen Code in der Ausgabefunktion platzieren, ist es in Ordnung. unelegant wie Sie die Figur erscheinen sehen und dann rübergehen. Die Werte in der GUI sind so eingestellt, wie ich es möchte. einfach ignoriert von Matlab scheint es. Irgendwelche Ideen?

  • Update *

Ich habe gelesen, da diese Matlab movegui(fig, 'onscreen') aufruft, wenn eine Führungs erstellte Figur zu öffnen. arg. Ich vermute jetzt, das Problem ist, wie man das übergeht, oder wie man "on-screen" als den anderen Monitor einstellt. Immer noch keine Lösung an diesem Ende

Antwort

0

Dies kann nicht direkt von innerhalb GUIDE durchgeführt werden.

Umgehung

Export Ihre Figur: GuideMenu -> Datei -> Export

Ersetzen Sie die Zeile:

movegui(gui_hFigure,'onscreen'); 

mit:

set(gcbf, 'position',[some -value on the other screen y w h) 

Für mich (R2012a), zeigt dies 330 des exportierten GUI um Zeile nach oben:

... 
    % openfig (called by local_openfig below) does this for guis without 
    % the LayoutFcn. Be sure to do it here so guis show up on screen. 
    movegui(gui_hFigure,'onscreen'); %% COMMENT OUT OR REPLACE THIS LINE 
else 
    gui_hFigure = local_openfig(gui_State.gui_Name, 
... 
+0

großer Trick, danke! – user1877560

0

Sie werden feststellen, dass GUIDE GUIs in Matlab mehrere Standardfunktionen haben, die beim Öffnen automatisch aufgerufen werden. Es ist eine lästige Eigenschaft von Matlab, dass mindestens zwei dieser Funktionen Ihre Standardpositionierung überschreiben. Vielleicht kann eine der hier besprochenen Lösungen here modifiziert werden, um Ihr Problem zu lösen.