Logo Espacio Linux Paypal - Acepta pagos con tarjeta en tu negocio      
Portada Taller Linux Descargas Foros Buscar Mapa del sitio Ayuda BlogEL
   Iniciar sesión | Registrarse    
 
Principal

Patrocinadores

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


Usuarios
Bienvenido, Anónimo

     Miembros:
Último: joselilloeltempranillo
Nuevos hoy: 6
Nuevos ayer: 6
Total: 29291

     Navegando:
Anónimos: 356
Miembros: 11
Total: 367


Miembros conectados:

01: otrebor
02: esternn
03: milux1
04: marcosabel
05: PoL_666
06: alqui
07: espilux
08: Dark
09: joselilloeltempranillo
10: tekoraik
11: tuxman

Mensajes recientes
 Instalación de distribuciones
 Mini-Distro que recomienden con xmms y paquetes .rpm
 Distro para arreglar un ordenador con Windows
 Software
 Usar Oddcast en audacious?
 Programa para recibir fotos de la cámara
 Hardware
 Ubuntu ATI RADEON Xpress 200M
 Debian Etch tarda mucho al reconocer un tercer HD
 Programación
 Que librerias para trabajar con descriptores?
 Recomendacion de librerias para la programacion de sockets
 Sistema
 Dos Distros en GRUB
 ¿Que Cosas Ralentizan Linux?
 Seguridad
 que aplicaciones usas para customizar la seguridad?
 Dudas con un firewall (software)
 Redes y Servidores
 Restringir el envio de correo con Postfix
 ayuda con server proxy con 2 interfaces de red
 Proyectos
 Sugerencia para el nombre de un proyecto
 como programar el puerto serial en matlab?
 Debates
 Ubuntu para los reticentes a Linux
 qué no les gusta de Linux?
 El Café
 No encuentro Debian Lenny....
 Windows con kernel Linux
 Desarrollo Web
 Entorno a mi proyecto fin de carrera
 Joomla y varios feed
 Documentación
 [Espacio Linux] fstab en profundidad
 /etc/passwd El archivo de passwords
 Screenshots
 Mi Desktop de Septiembre
 Ubuntu de Blackbird
 KDE
 restaurar taskbar KDE 3.5
 error al inicio del KDE initializing System Services
 GNOME
 Driver de tarjeta Wireless
 Como se llaman los objetos agregables al panel? (Ej: Clíma)
 Otros escritorios y entornos
 gestor grafico de linpus
 inicio de programas en fluxbox
 X Window
 error al inicio del KDE initializing System Services
 Problemas con Xorg y Gdm

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

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

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