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

GUI Button erstellen und mit diesem die GUI beenden

 

Oli8765

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.11.2009, 18:47     Titel: GUI Button erstellen und mit diesem die GUI beenden
  Antworten mit Zitat      
Hi

Ich hab eine Frage zum beenden von Ferstern.

Haben das hier gefunden
Code:
uicontrol('string','CLOSE','units','normalized',...
    'position',[0.5 0.02 0.1 0.05],'callback','close(gcbf)')


Ist es möglich auch ein Fenster zu beenden wenn man es mit dem GUI EDITOR gezeichnet hat?

Oli


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 12.11.2009, 19:07     Titel:
  Antworten mit Zitat      
Hallo, das ist genau so möglich
einfach in Callback des Buttons close schreiben

Code:

function pushbutton1_Callback(hObject, eventdata, hInspect)
close(gcbf)
%
% oder
delete(gcbf)

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Oli8765

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.11.2009, 20:11     Titel: KANN MAN AUCH ALLE ANDEREN FENSTER DES PROGRAMMS SCHLIEßen
  Antworten mit Zitat      
Ich hab noch x weite Fenster die die aus dieser GUI heraus öffnen lassen
Gibt es so ewas wie eine "main delete close"

Oli
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.11.2009, 10:35     Titel:
  Antworten mit Zitat      
Hallo

Falls du alles killen möchtest, dann am einfachsten geht es
mit findall.
Dieser Befehl sucht alle handles aller geöffnete Objekte raus.
Bitte Aufpassen es schließt wirklich alle geöffneten Fenster, auch die, die man vielleicht nicht schließen wollte
Code:

h_obj = findall(0)
% Matlab Konsole(Root ) rauslassen
h_obj =h_obj(2:end);
% und alle handles löschen
delete(h_obj);
 



Sonst muss du gezielt, die handles von geöffneten Fenster in handle-Struktur von Main-Fenster ablegen. Und dann in Callback diese nacheinander Schließen. Beachte dass du noch auf Existenz der handles überprüfen sollst, um Fall abzufangen, Fenster bereits geschlossen zu haben.
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 22.03.2012, 15:28     Titel:
  Antworten mit Zitat      
Hallo,

ich habe dazu auch noch eine Frage. Ich habe eine GUI, dich ich Hauptmenü, genannt habe. Sie beinhaltet nur 2 Pushbutton. Jeder Button bietet die Möglichkeit eine andere GUI zu starten. Ich möchte aber, dass nach dem Start eine anderen GUI die Hauptmenügui gelöscht wird. Nach dem, was ich gelesen habe, müsste es ja folgendermaßen funktionieren:

Code:
function pushbutton2_Callback(hObject, eventdata, handles)
Tool;
delete(gcbf);


leider beendet sich die Hauptmenügui nicht.

Weiß jemand Rat?

Danke und Gruß
Thorsten
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.03.2012, 12:05     Titel:
  Antworten mit Zitat      
Hallo

ist das denn auch der richtige Callback? Denn so wie es aussieht sollte funktionieren. Falls das nicht der Fall, bitte lauffähiges Beispiel um das Problem nachvollziehen zu können.
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 23.03.2012, 12:21     Titel:
  Antworten mit Zitat      
Hallo

hier nochmal der gesamt Code:

Code:
function varargout = Hauptmenue(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Hauptmenue_OpeningFcn, ...
                   'gui_OutputFcn',  @Hauptmenue_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before Hauptmenue is made visible.
function Hauptmenue_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;
guidata(hObject, handles);

% --- Outputs from this function are returned to the command line.
function varargout = Hauptmenue_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
Tool1;


function pushbutton2_Callback(hObject, eventdata, handles)
Tool2;
 


Sinn und zweck sollte sein, dass egal ob ich Tool1 oder 2 über den Pushbutton öffne, sich danach das Hauptmenü schließt. Und wenn ich den Befehl delete(gcbf) unter tool1 oder 2 schreibe, beide Fälle sollen möglich sein, sollte sich eigentlich die Hauptmenügui schließen, was aber leider nicht funktioniert.
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.