Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 5 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Vie Nov 19, 2010 12:44 pm
Mensajes: 3

Nota Publicado: Vie Nov 19, 2010 1:04 pm 
Arriba  
hola a todos, tengo por hobby la programación, hace poco que cambié de visual Studio a monodevelop con GTK y estoy bien desorientado, algo estoy haciendo pero me cuestan mucho cosas basicas, pero quiero hacer mis aplicaciones con software libre. Mi problema es que tengo una ventana en donde el usuario se registra mediante Nombre y contraseña, hasta aqui todo bien, si estos datos se aceptan, abro conexion con MySql y ahí necesito que se abra otra ventana (la principal de mi aplicación) pero que se cierre la anterior en donde registré los datos de ingreso, el problema es que cuando cierro esta ventana, irremediablemente mi aplicación termina, ya intenté con Quit() y con Hide(), pero como sea al cerrar la ventana Login, el programa se deja de ejecutar, la ventana de registro tiene un evento OnDelete que termina la aplicación si hago clic en cerrar de dicha ventana, alguien me podría orientar o sugerirme algo porfavor?. Gracias a todos desde ya.

 Perfil Email  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Mié Nov 28, 2007 12:00 am
Mensajes: 1361
Ubicación: En la X del explorer (pulse para llamar)

Nota Publicado: Dom Nov 21, 2010 7:07 am 
Arriba  
Tampoco es que sea un experto en gtk...

Supongo que tendrás una ventana con un par de botones para aceptar y cancelar los datos. Creo que lo que tienes que hacer es, para cuando el usuario pulse el botón para cerrar la ventana o el botón para cancelar, capturar el evento y cerrar la aplicación.

No tengo ni idea de si el código siguiente está bien o no, pero creo que puedes hacerte una idea:
Código:
void destroy( GtkWidget *widget,
              gpointer   data )
{
    gtk_main_quit();
}

void showMainWindow( GtkWidget *widget,
              gpointer   data )
{
    //validar datos
    //ocultar los mensajes y mostrar tu ventana principal
}

int main( int   argc,
          char *argv[] )
{
[...]
//window es la ventana
gtk_signal_connect (GTK_OBJECT (window), "destroy",
                        GTK_SIGNAL_FUNC (destroy), NULL);
//button es el botón para cancelar
gtk_signal_connect (GTK_OBJECT (button), "clicked",
                        GTK_SIGNAL_FUNC (destroy), NULL);
gtk_signal_connect (GTK_OBJECT (buttonAceptar), "clicked",
                        GTK_SIGNAL_FUNC (showMainWindow), NULL);

[...]
}

Espero que te sirva.

_________________
Descargue el gestor de mp3 "Music Manager" -> (mmlf)
Última versión del gestor "Music Manager" -> (jmmm)

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Vie Nov 19, 2010 12:44 pm
Mensajes: 3

Nota Publicado: Mar Nov 23, 2010 8:15 am 
Arriba  
Hola, gracias. y si, algo así es lo que hago pero mi aplicación sigue cerrandoce al cerrar la ventana de logeo. el codigo utlizado es similar a este:
void login()
{
[...]
Ventana_login.Destroy(); //tambien uso Ventana_login.Hide() con el mismo resultado
ventana_principal.show();
//tambien intenté mostrar primero la ventana principal y luego cerrar la de login.

}

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Jue Abr 26, 2007 11:00 pm
Mensajes: 1426

Nota Publicado: Mar Nov 23, 2010 9:38 am 
Arriba  
Quizás se deba al tipo de ventana que estas usando para el loggin, quizás sin darte cuenta, la ventana de tu login y la ventana de tu programa tienen la misma propiedad de ser "Ventanas Principales" (o como sea que le llamen en .Net), y al cerrar el login también cerras todo el programa.
Proba dándole la propiedad "Dialogo Modal" a la ventana a de login y a la ventana del programa le das "Ventana Principal".
Ojo, yo de .Net/Mono no se nada, solo lo deduzco por analogía con Qt, en Qt existen esas propiedades para las ventanas y estoy seguro de que en .Net también.

_________________
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit."

"Finibus Bonorum Et Malorum", Cicerón

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Vie Nov 19, 2010 12:44 pm
Mensajes: 3

Nota Publicado: Mar Nov 23, 2010 1:28 pm 
Arriba  
Ok. Eso si no lo tuve en cuenta. Estoy en el trabajo, llego a casa y pruebo. Gracias desde ya.

 Perfil Email  
Mostrar mensajes previos:  Ordenar por  
 [ 5 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO