Matlab - No cerrar ventana

 
Vista:

No cerrar ventana

Publicado por Eirene (1 intervención) el 05/05/2012 01:07:45
Hola, estoy haciendo una GUI. Me gustarí que cuando la ejecutes, tú no puedas cerrarla la ventana con la X de la esquina derecha superior.

¿Se puede hacer?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

No cerrar ventana

Publicado por Gerardo (104 intervenciones) el 05/05/2012 01:28:50
Hola!

Humm supongo que puedes hacerlo con CloseRequestFcn.
Vas a una parte libre de tu GUI y dandole click derecho buscar View Callbacks y buscas CloseRequestFcn.

luego dentro de ese callback pones return y ejecutas, si deseas puedes ponerle otras condiciones, pero eso depende ya de lo que deseeas hacer.

1
2
3
function figure1_CloseRequestFcn(hObject, eventdata, handles)
return
delete(hObject);


Saludos!
Gerardo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No cerrar ventana

Publicado por holyo (58 intervenciones) el 05/05/2012 01:51:17
Hola Gerardo, te quería hacer una pregunta casi igual que la que te ha hecho Eirene. Lo que ocurre, es que en este caso yo no tengo una Gui, sino que es un .m.

Se trata de un Inicio.m en el que muestro una imagen, que tiene mi nombre y en el que aparece un botón de continuar. Pues me gustaría que no se pudiese cerrar en la X.

Este es el código.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function Inicio
 
clear,clc,cla,close all
%Imagen de inicio
Tamanho_pantalla=get(0,'ScreenSize');
figdiag=figure('Units','Pixels','Position',[0 0 Tamanho_pantalla(3)*0.95 Tamanho_pantalla(4)*0.8],'Number','off','Name','Ejemplo programación matlab Juan','Menubar','none','color',[0 0 0],'Resize','off');
Posicion_actual=get(gcf,'Position');
xr=Tamanho_pantalla(3)-Posicion_actual(3);
xp=round(xr/2);
yr=Tamanho_pantalla(4)-Posicion_actual(4);
yp=round(yr/2);
set(gcf,'Position',[xp yp Posicion_actual(3) Posicion_actual(4)]);
 
%Ubicamos ejes en figura
axes('Units','Normalized','Position',[0 0 1 1]);
%Incluir imagen
%Importamos imagen *.jpg,junto con su mapa de colores
[x,map]=imread('Imagen1.JPG','jpg');
%Representamos imagen en figura, con su mapa de colores
image(x),colormap(map),axis off,hold on
 
%Títulos sobre imagen
%Título
text(50,80,'Programación con matlab,'Fontname','Arial','Fontsize',25,'Fontangle','Italic', 'Fontweight','Bold','color',[1 1 1]);
text(50,885,'Juan','Fontname','Comic Sans MS','Fontangle','Italic','Fontweight','Bold','Fontsize',14,'color',[1 1 1]);
%Botón Continuar
boton=uicontrol('Style','pushbutton','Units','normalized','Position',[.84 .03 .12 .05],'String','Continuar','Callback','clear all; close all;clc; programa;');


¿Qué comando puedo utilizar para hacer eso? Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No cerrar ventana

Publicado por Gerardo (104 intervenciones) el 06/05/2012 00:22:31
Hola!

Bueno la pregunta no estan simple, pues tendrias que generar una funcion que determine cuando cerrar y cuando no. Porque si pones lo mismo simplemente despues no lo vas a poder cerrar luego. He hecho esto nose si te sirve, ojala que si.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
clear,clc,cla,close all
%condiciones iniciales
estado=0;
%Imagen de inicio
Tamanho_pantalla=get(0,'ScreenSize');
figdiag=figure(...
    'Units','Pixels',...
    'Position',[0 0 Tamanho_pantalla(3)*0.95 Tamanho_pantalla(4)*0.8],...
    'Number','off',...
    'Name','Ejemplo programación matlab Juan',...
    'Menubar','none',...
    'color',[0 0 0],...
    'Resize','off',...
    'CloseRequestFcn','if estado==0,return, else,delete(gcf),end');
Posicion_actual=get(gcf,'Position');
xr=Tamanho_pantalla(3)-Posicion_actual(3);
xp=round(xr/2);
yr=Tamanho_pantalla(4)-Posicion_actual(4);
yp=round(yr/2);
set(gcf,...
    'Position',[xp yp Posicion_actual(3) Posicion_actual(4)]);
 
%Ubicamos ejes en figura
axes('Units','Normalized','Position',[0 0 1 1]);
%Incluir imagen
%Importamos imagen *.jpg,junto con su mapa de colores
[x,map]=imread('Imagen1.JPG','jpg');
%Representamos imagen en figura, con su mapa de colores
image(x),colormap(map),axis off,hold on
 
%Títulos sobre imagen
%Título
text(...
    50,80,'Programación con matlab',...
    'Fontname','Arial',...
    'Fontsize',25,...
    'Fontangle','Italic',...
    'Fontweight','Bold',...
    'color',[1 1 1]);
text(...
    50,885,'Juan',...
    'Fontname','Comic Sans MS',...
    'Fontangle','Italic',...
    'Fontweight','Bold',...
    'Fontsize',14,...
    'color',[1 1 1]);
%Botón Continuar
boton=uicontrol(...
    'Style','pushbutton',...
    'Units','normalized',...
    'Position',[.84 .03 .12 .05],...
    'String','Continuar',...
    'Callback','estado=1; programa; delete(figdiag)');



Saludos!
Gerardo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar