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: jonathansl
Nuevos hoy: 2
Nuevos ayer: 13
Total: 28449

     Navegando:
Anónimos: 365
Miembros: 10
Total: 375


Miembros conectados:

01: joman
02: Biker
03: mazcayu
04: Mad_Tiger
05: Gabriel_L
06: ExEKieLiTo
07: jonathansl
08: p4bl1t0
09: yoyofv
10: epacheco

Mensajes recientes
 Instalación de distribuciones
 como instalar ubuntu 7.4 en pen drive
 Usar memoria USB como netinstall de Debian
 Software
 instale frostwire, pero no inicia el programa
 Montaje de discos que estan en Windows 2003
 Hardware
 problemas con internet
 problema al arrancar el pc
 Programación
 a/b/m en mysql [solucionado]
 [PHP] Contador de visitas
 Sistema
 LINUX desde un nivel básico
 Al iniciar sesion en ubuntu este se reinicia
 Seguridad
 inyeccion sql
 Fedora tiene un firewall llamado Fuego?
 Redes y Servidores
 ver WINDOWS desde linux ccon samba
 Configurar gdm en Fedora 9 para usar XDMCP
 Proyectos
 Mi primer Programa: "Changement"
 Unix file system
 Debates
 KONQUEROR -VS- FireFox
 Ser más explícito en los post para ayudar en las búsquedas.
 El Café
 vuelta a ati
 Wallpapers para linux!!
 Desarrollo Web
 Buen hosting para joomla
 Modulo i18n de drupal(traducci on de paginas)
 Documentación
 how to como instalar WUSB54GC en Debian etch
 [Espacio Linux] HOWTO: Nano, mi editor favorito
 Screenshots
 Mi Fluxbox
 Ubuntu: Super Mega Slaxis-Jumbo Omegix Crystal Lithium Theme
 KDE
 como instalo conky en mandriva???
 No reacciona el paquete de restricted-mana ger-kde
 GNOME
 herramienta para red y bateria?[Soluci onado]
 Genome o KDU
 Otros escritorios y entornos
 añadir kde o gnome a entrance en elive ?
 No puedo usar metacity
 X Window
 instalacion Compiz esfera earth
 Efecto ventana sobre ventana compiz

[ 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: 2065

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: 32

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: 2065

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