Logo Espacio Linux       
Portada Taller Linux Descargas Foros Buscar Mapa del sitio Ayuda BlogEL
   Iniciar sesión | Registrarse    
 
Principal

Patrocinadores

Anuncios



Boletín Espacio Linux
Las novedades del sitio y el mundo Linux en tu email.


Usuarios
Bienvenido, Anónimo

     Miembros:
Último: darky_darkness
Nuevos hoy: 11
Nuevos ayer: 12
Total: 29167

     Navegando:
Anónimos: 372
Miembros: 10
Total: 382


Miembros conectados:

01: darky_darkness
02: otrebor
03: linuxlover
04: vladj
05: javo
06: xpiloit
07: principe-ante
08: daniel_fisi
09: Luli
10: goro

Mensajes recientes
 Instalación de distribuciones
 duda en goblinX...
 instalar suse (SLED 10) desde backup
 Software
 kernel too old
 mensaje de errror en synaptic
 Hardware
 editado
 Si detecta la tarjeta pero no se conecta!
 Programación
 Problemas con Mono
 compilar un programa en c en linux ?
 Sistema
 no bootea ni veo archivos de windows en ubuntu
 SUID y GUID?
 Seguridad
 restringir ejecucion de un proceso
 programar un script en perl o c para que escuche un puerto
 Redes y Servidores
 Duda servidor streaming
 Problemas de conexión con SSH
 Proyectos
 VENENUX GNU/Linux "Venezolana de Linux" Descargalo
 Desarrollando distro linux, ayuda en logo y splash
 Debates
 qué no les gusta de Linux?
 Debian o Ubuntu
 El Café
 Cuales son tus peliculas favoritas?
 Como crear clon de suse en dvd o cd's ?
 Desarrollo Web
 MySQL - como devover mensaje de error en un Store Proc???
 LAMPP no me deja grabar datos en mysql desde pagina en php
 Documentación
 libros para linux
 [Espacio Linux] Estacion de trabajo en Audio
 Screenshots
 Debian Lenny con Gnome
 Mi inicio en fluxbox...
 KDE
 error al configurar
 actualizar kde3.5 a kde 4.03 en mandriva
 GNOME
 editor de menus
 error al iniciar secion
 Otros escritorios y entornos
 XFce se ve chido... pero mi teclado....
 inicio de programas en fluxbox
 X Window
 ayuda con compiz
 Librerías GUI Solaris

[ Entrar a los foros ]
Buscar

Sitios amigos

Espacio Linux :: Ver tema - Programación con Qt
ReglamentoReglamento general de los foros
 FAQFAQ  BuscarBuscar  Grupos de usuariosGrupos de usuarios  Miembros  PerfilPerfil
  Mensajes privadosMensajes privados  

Programación con Qt

Publicar nuevo tema  Responder al tema  Foros de discusión -> Programación
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
sodio
Forista Nuevo
Forista Nuevo



Miembro No. 27939
Registrado: May 15, 2008
Mensajes: 7

MensajePublicado: Jue May 15, 2008 5:21 am    Asunto: Programación con Qt Responder citando

Hola.

Soy nuevo por aquí y estoy dando mis primeros pasos en la programación en C++ con Qt.

Mi problema es que no consigo que me funcione correctamente un sencillísimo programa que he hecho. Este es el código (main.cpp):

Código:
#include <QApplication>
#include <QWidget>
#include <QPushButton>

class MiVentana: public QWidget
{
   public:
      MiVentana (QWidget *parent=0);
   public slots:
      void botonPulsado();
};

MiVentana::MiVentana(QWidget *parent)
   : QWidget(parent)
{
   QPushButton *bSalir=new QPushButton("&Salir",this);
   connect(bSalir,SIGNAL(clicked()),this,SLOT(botonPulsado()))  ;
   connect(bSalir,SIGNAL(clicked()),qApp,SLOT(quit()));
   bSalir->show();
}

void MiVentana::botonPulsado()
{
   printf("Botón pulsado\n");
}

int main(int argc, char **argv)
{
   QApplication app(argc, argv);
   MiVentana ventana;
   ventana.show();
   return app.exec();
}


Compila perfectamente, pero me aparece el mensaje
Código:
Object::connect: No such slot QWidget::botonPulsado()

y el botón no salta al slot botonPulsado.

¿Qué hago mal? Como se ve en el código el slot está creado en la clase, y a pesar de eso me dice que no existe.

Gracias y hasta pronto.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
zeka
Forista Legendario
Forista Legendario



Miembro No. 8222
Registrado: Jun 07, 2005
Mensajes: 2119

MensajePublicado: Jue May 15, 2008 7:29 am    Asunto: Re: Programación con Qt Responder citando

No trabajo con programación orientada a objetos en la forma que tu requieres pero por lo que veo estás tratando de usar printf y, aparentemente, no has incluido la librería correspondiente. Por qué mejor no usas la librería de C++ que es <iostream> y luego haces referencia a cout en lugar de printf.

Código:

#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <iostream>

using namespace std;

.
.
.

void MiVentana::botonPulsado()
{
   cout << "Botón pulsado\n";
}
.
.
.


_________________
"Agua que no has de beber déjala correr"


Ultima edición por zeka el Jue May 15, 2008 7:54 am, editado 1 vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado
sodio
Forista Nuevo
Forista Nuevo



Miembro No. 27939
Registrado: May 15, 2008
Mensajes: 7

MensajePublicado: Jue May 15, 2008 7:45 am    Asunto: Re: Programación con Qt Responder citando

El problema no está ahí, está en que parece que no se reconoce el slot botonPulsado que he creado en la clase MiVentana.

Si cambio el printf por un simple return sigue sin funcionar.

De todas formas gracias por la atención y la idea.

Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
miguellucero
Forista Nuevo
Forista Nuevo



Miembro No. 26732
Registrado: Mar 03, 2008
Mensajes: 34

MensajePublicado: Jue May 15, 2008 7:40 pm    Asunto: Re: Programación con Qt Responder citando

mmmmmm Qt

Código:

 public slots:
      virtual void botonPulsado();



intenta eso.... a simple vista...
lo checo despues


suerte
Volver arriba
Ver perfil de usuario Enviar mensaje privado
sodio
Forista Nuevo
Forista Nuevo



Miembro No. 27939
Registrado: May 15, 2008
Mensajes: 7

MensajePublicado: Vie May 16, 2008 12:42 am    Asunto: Re: Programación con Qt Responder citando

Pues no, parece que tampoco funciona.

Hace una semana que estoy dándole vueltas al tema y comprobando la información con los tutoriales de la página de trolltech pero no hay manera.

Gracias por la ayuda.

Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
sodio
Forista Nuevo
Forista Nuevo



Miembro No. 27939
Registrado: May 15, 2008
Mensajes: 7

MensajePublicado: Sab May 17, 2008 8:01 am    Asunto: Re: Programación con Qt Responder citando

Ya sé cómo hacerlo. Lo pongo aquí por si le interesa a alguien en el futuro.

Hay que dividir el programa en tres archivos.

Uno, el main.cpp, que será desde el que se ejecuta nuestra interface, que estará definida en otros dos archivos, uno de extensión .cpp y otro .h

No sé por qué no deja hacerlo todo en un sólo archivo. Aquí van mis tres archivos con este ejemplo simple.

main.cpp
Código:

#include <QApplication>
#include "formulario.h"

int main(int argc, char **argv)  {
        QApplication app(argc, argv);
        MiVentana ventana;
        ventana.show();
        return app.exec();
}


formulario.h
Código:

#ifndef VENTANA_H
#define VENTANA_H

#include <QWidget>
#include <QPushButton>

class MiVentana : public QWidget {
   Q_OBJECT
public:
   MiVentana(QWidget *parent = 0);

public slots:
        void botonPulsado();
};
#endif


formulario.cpp
Código:

#include "formulario.h"
#include <QApplication>

MiVentana::MiVentana(QWidget *parent): QWidget(parent) {

        QPushButton *bSalir = new QPushButton("&Salir",this);
        connect(bSalir,SIGNAL(clicked()),this,SLOT(botonPulsado()));
        connect(bSalir,SIGNAL(clicked()),qApp,SLOT(quit()));
        bSalir->show();
}

void MiVentana::botonPulsado()
{
        printf("Botón pulsado\n");
        return;
}


Así sí se puede acceder al slot creado. Pensaba que ya había probado esta opción, pero al seguir buscando y hacer más pruebas me ha funcionado.

Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
zeka
Forista Legendario
Forista Legendario



Miembro No. 8222
Registrado: Jun 07, 2005
Mensajes: 2119

MensajePublicado: Sab May 17, 2008 9:42 am    Asunto: Re: Programación con Qt Responder citando

Por qué no lo montas también en tu blog de miembros de Espacio Linux. En mi caso, es más fácil recordar que el usuario sodio hizo algo útil al respecto y voy directamente allí. Cuando tengas en mente tener tu propio blog, a lo mejor ya lo tienes, transfieres tu información allí o viceversa. Mientras más se exponga la información más oportunidad tendrá de que sea aprovechada por otros.
_________________
"Agua que no has de beber déjala correr"
Volver arriba
Ver perfil de usuario Enviar mensaje privado
sodio
Forista Nuevo
Forista Nuevo



Miembro No. 27939
Registrado: May 15, 2008
Mensajes: 7

MensajePublicado: Sab May 17, 2008 10:39 am    Asunto: Re: Programación con Qt Responder citando

Bien, ya me miraré eso del blog en espaciolinux, a ver cómo funciona y si hace falta lo pongo.

Hasta otra y gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes anteriores:   
Publicar nuevo tema  Responder al tema  Foros de discusión -> Programación Todas las horas son GMT - 6 Horas

Página 1 de 1



No puedes publicar nuevos temas en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en encuestas en este foro



Powered by phpBB © 2001 phpBB Group
phpBB port v2.1 based on Tom Nitzschner's phpbb2.0.6 upgraded to phpBB 2.0.4 standalone was developed and tested by:
ArtificialIntel, ChatServ, mikem,
sixonetonoffun and Paul Laudanski (aka Zhen-Xjell).

Version 2.1 by Nuke Cops © 2003 http://www.nukecops.com

Forums ©
 

Copyright | Términos de uso | Política de privacidad | Publicidad | Contáctanos | Blog