Qt en Español

Qt en Español es una comunidad de usuarios para aprender a Programar usando las librerias Qt

Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Últimos temas
» Desaparecen objetos del formulario al usar showMaximized()
Sáb Sep 13, 2014 9:54 pm por ljimenez29

» visivilidad de controles
Dom Mayo 18, 2014 5:04 pm por solitarywolf

» Error QT (y no sé que más poner ¬¬)
Jue Sep 26, 2013 4:02 pm por Anónimo

» QT, VTK en VS 2008 C++
Jue Abr 11, 2013 5:19 pm por monicadiaz

» [Ayuda]Programa en PyQt4 en modo Pantalla completa
Sáb Mar 30, 2013 8:56 pm por fortil

» SIGNAL y SLOT
Sáb Mar 02, 2013 5:11 pm por loloqt

» Qt creator 5.0.1 en Windows 8...."Qt creator needs a compiler set up to build. Configure a compiler in the kit options"
Miér Feb 27, 2013 4:23 pm por caliche

» mi aplicacion no me lee la base de datos
Jue Oct 18, 2012 1:55 pm por jldiaz

» QT.Para G19 de Logitech
Dom Oct 14, 2012 3:00 am por novax1

Navegación
 Portal
 Índice
 Miembros
 Perfil
 FAQ
 Buscar
Compañeros
Crear foro
Sondeo

Que nombre te gustaria que se llamara el foro?

27% 27% [ 6 ]
18% 18% [ 4 ]
0% 0% [ 0 ]
55% 55% [ 12 ]

Votos Totales : 22


No estás conectado. Conéctate o registrate

Eventos en QT

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1 Eventos en QT el Sáb Feb 20, 2010 10:33 pm

¿Como manejar los eventos en QT?
los Eventos son Igual a las señales?

eventos como load,keypress, etc Embarassed
Soy nuevo en esto de Qt y quisiera saber si algun me pudiera ayudar en esto.
Necesito desarrollar un sistema en c++ para presentar y opte por este framework que me parece excelente Shocked lol!

Ver perfil de usuario

2 Re: Eventos en QT el Dom Feb 21, 2010 3:42 pm

lexblas escribió:¿Como manejar los eventos en QT?
los Eventos son Igual a las señales?

eventos como load,keypress, etc Embarassed
Soy nuevo en esto de Qt y quisiera saber si algun me pudiera ayudar en esto.
Necesito desarrollar un sistema en c++ para presentar y opte por este framework que me parece excelente Shocked lol!

Hola, yo acabo de empezar a programar con Qt, y por lo que estube leyendo en el manual en ingles pude averiguar que se puede hacer de dos maneras:

1. MEDIANTE LA INTERFAZ GRAFICA DE QT (yo uso Qt Creator 1.3.1 Basado en Qt 4.6.1 (32 bit))
Cuando tienes abierto un proyecto, y tienes una interfaz grafica (archivo.ui) justo debajo del formulario hay una ventana con dos pestañas, que ponen Action Editor y signals_Slots Editor, Si no encuentras estas pestañas pulsa la tecla F4, con el archivo .ui abierto. Una vez hecho esto, si por ejemplo quieres que al pulsar un boton se borre el contenido de un Edit pulsa en el boton u arrastra hasta el Edit, una vez hecho esto te saldra una ventana con los posibles Signals y Slots, el de la izquierda es el Signal emitido al pulsar el boton y el de la derecha el Slots ( que es una respuesta al signal). Bien, pues para hacer lo que anteriormente dije, seleciona el signal del boton pressed(), y para el edit clear(). Con esto ya tienes el evento creado en modo de edicion.

2. MEDIANTE CODIGO.

Este metodo es mas complicado, pero por lo que he leido es mucho mas configurable, a continuacion te escribo un ejemplo que encontre en un manual, intentare explicarlo lo mejor que pueda (En el ejemplo se quiere que al pulsar un boton, la ventana principal realice una acccion):

Debemos definir la funcion a realizar cuando se marque el signal, esto lo haremos en el archivo de cabecera de la ventana principal:
Q_OBJECT
public:
MainWindowImpl( QWidget * parent = 0, Qt::WFlags f = 0 );
private Slots:
void addClicked();
};
#endif
la funcion es la que esta en negrita.

Ahora tenemos que implementar el slot (addClicked) Queremos que al recibir el
Signal clicked del botón, se lea y añada el contenido del campo de texto a una lista, y se acabe borrando el contenido de este campo de texto, Esto lo hacemos en el archivo fuente de la ventana principal:
void MainWindowImpl::addClicked()
{
//Aqui ira lo que queremos que haga el evento.
}
Finalmente falta conectar el Signal del objeto emisor (Signal clicked del botón) con el Slot del
objeto receptor (Slot addClicked() de la ventana principal). Este último paso lo haremos en la
función constructora de la ventana principal, dentro del archivo fuente de la misma,
añadiendo la siguiente línea:


MainWindowImpl::MainWindowImpl( QWidget * parent, Qt::WFlags f)
: QMainWindow(parent, f)
{
setupUi(this);
connect(btAdd, SIGNAL(clicked()), this, SLOT(addClicked()));
}

Espero que te sirva de ayuda.

La parte de los signals y slot desde codigo fuente la he extraido del manual: memoriaPFC

Ver perfil de usuario

3 Re: Eventos en QT el Dom Feb 21, 2010 5:05 pm

Gracias.

Pero tengo otra pregunta
Very Happy , tengo una ventana principal donde tengo una mdiArea
la cual me aparece cone el tamaña por defecto, pero sho kisiera k aparesca maximizada, del mismo tamaño de la ventana k la contiene.
Intente poniendo el codigo en el constructor pero naa de naa.
por eso keria saber sobre los eventos, pork solo aparecen dos señales en el Window: iconSize... y toolButtonn...
lo k sho keria exactamente saber si es k tiene el window alguna señal como el evento open, close, etc
Necesito k iluminen mi mente Evil or Very Mad Idea
Gracias de Antemano

Ver perfil de usuario

4 Re: Eventos en QT el Lun Feb 22, 2010 5:38 am

Pues creo que en las propiedades de la ventana, que salen a la derecha, hay varias opciones como por ejemplo :
geometry, sizePolicity y minimunSize, nose si es eso a lo que te refieres, pero es que yo acabo de empezar con Qt tambien, y aun me queda por aprender.
Espero haberte servido de ayuda
Saludos
Alejandro A.B

Ver perfil de usuario

5 Re: Eventos en QT el Mar Feb 23, 2010 11:31 am

Gracias a todos por colaborar con el conocimiento, la verdad nu pense que me contestarian tan rapido.
Gracias. Aunque encontre este modo para solucionar mi problem y a continuacion lo explico.

tengo una ventana con un mdiArea que he creado con el diseñador

mi archivo de cabezera se llama principa.h
este es el codigo

Código:
#ifndef PRINCIPA_H
#define PRINCIPA_H
class Cliente;
#include <QMainWindow>

namespace Ui {
    class Principa;
}

class Principa : public QMainWindow {
    Q_OBJECT
public:
    Principa(QWidget *parent = 0);
    ~Principa();
 
protected:
    void changeEvent(QEvent *e);
    void closeEvent(QCloseEvent *event );
    void  showEvent (QShowEvent *event);


private:
    Ui::Principa *ui;

private slots:
    void abrirCliente();

void maximo();
    Cliente *AbrirCliente();
};

#endif // PRINCIPA_H

El siguiente es mi archivo principa.cpp
Código:
#include "principa.h"
#include "ui_principa.h"
#include "cliente.h"
#include "QMessageBox"
Principa::Principa(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Principa)
{

    ui->setupUi(this);
    //this->setWindowState(Qt::WindowMaximized);
    //ui->centralWidget()->setWindowState(Qt::WindowMaximized);



  ui->setupUi(this);
  //ui->mdiArea->resize(800,600);
}

Principa::~Principa()
{
    delete ui;
}

void Principa::changeEvent(QEvent *e)
{

    QMainWindow::changeEvent(e);

    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;

    default:
        break;
    }

}

void Principa::abrirCliente()
{
Cliente *child = AbrirCliente();
child->showMaximized();
ui->statusBar->showMessage(tr("Host  found"),200);
ui->statusBar->showMessage(tr("otro mas")),4000;
}

Cliente *Principa::AbrirCliente()
{
  Cliente *cli = new Cliente;
  ui->mdiArea->addSubWindow(cli);
  return cli;
}
void Principa::closeEvent(QCloseEvent *event)
{

}

void Principa::showEvent(QShowEvent *event)
{
this->setWindowState(Qt::WindowMaximized);
//ui->mdiArea->setWindowState(Qt::WindowMaximized);
ui->mdiArea->resize(this->width(),this->height() );
}


/////////////////////////////////////////

lo k pasaba es k el evento close con el cual estaba probando para ver si es k me funcaban bien los eventos nu se desencadenaban y era por en la declaracion del propotipo del evento la habia puesto la primera letra con mayuscula(como dije soy un Nuvatu), y como despues cambiando eso si se desencadenaba ton lo demas tambien jeje.
Pues ahora como dije el tema era k se maximize el mdiArea:


Código:
this->setWindowState(Qt::WindowMaximized);
con la linea de codigo anterior en el vento Show me muestra la ventana maximizada, ya k si lo pongo en la ventana de herramientas el tamaño predefinido entonces si llevo la aplicacion en una pc con mayor resolucion nu se vera del tamaño de toda la pantalla, por eso puse esa linea de codigo en el evento show.

Ahora la siguiente linea de codigo(esta como comentario la siguiente lines)
Código:
//ui->mdiArea->setWindowState(Qt::WindowMaximized);

esta linea de codigo deberia maximizar el mdiArea pero nu lu hace ¿Porque?!!. Nu lo se, por eso puse esta linea:

Código:
i->mdiArea->resize(this->width(),this->height() );

con lo cual logro mi objetivo y sea la resolucion k sea, si se ve como se debe ver.

NOTA: El codgo k puse es el k estoy realizando como practica para poder aprender lo basico y despues lo demas

Twisted Evil

Estaba pensando en realizar un sistema de Ferreteria hecha con C++ y Qt con la BD en MySql si alguien esta interesado en colaborar ("Todo que sea por la ciencia ") ps mi correo es Lexblas@gmail.com
Lo que avance en estos dias lo posteare o lo pondre en un servidor pa descargargo y talves creo un nuevo tema en este foro jeje
Laughing
Arriva QTnator.



Antes
[img][/img]


despues

Ver perfil de usuario

6 Re: Eventos en QT el Mar Feb 23, 2010 1:44 pm

lexblas edite tu comentario para que asi se pudiera ver mejor el codigo.

Seria fantastico que en el foro estuviera tu proyecto. Lucas y yo estamos creando un foro (de esto) en un servidor propio (de lucas) asi ya no usariamos este y estaria mejor organizado.

una de las ideas que tengo pensado hacer es la de crear una seccion donde se alojen todos los proyectos que ariamos los de la comunidad de qt.

La pagina todavia es un prototipo pero de seguro que pronto estara disponible. xD

Ver perfil de usuario http://qt-espanol.forosactivos.net

7 Re: Eventos en QT el Mar Feb 23, 2010 2:45 pm

Me parece Genial.
Tons Seguire investgando y trabajando en este proyecto

Ver perfil de usuario

8 Re: Eventos en QT el Miér Feb 24, 2010 10:40 am

Hola, me alegro de que por fin consiguieras tu objetivo, pero una cosa, nose si te habras dado cuenta, supongo que si, pero la linea que dices que no funciona esta comentada xD. Una pregunta que tengo, no entiendo bien los namespace, me podrias explicar que hace esto?
namespace Ui {
class Principa;
}

Se se pueden meter variables y funciones, pero no entiendo que haces al meter la calse en el namespace
Saludos
Aejandro A.B

Ver perfil de usuario

9 Re: Eventos en QT el Miér Feb 24, 2010 11:24 am

Weno lo puso comentada pork nu funco ps jejeje.
Ochea primero lo puse sin comentar y nu funciono y como nu funciona lo comente.
Sobre el segundo punto, mmmmmmmm eso lo pone el QTCreator por defecto. Toy Trabajando con el QTCreator 1.3.0 y lo k hago es crear una clase del formulario de QtDesigner y es asi como lo crea por defecto, como ahun nu profundizo en esa tema no podria explicarlo por mas k kisiera.
Voy a paso lento pero seguro
Cool . Gracias por las observaciones. Saludos a Todo(a)s. Gracias Totales!!!!!!!!.. tongue tongue

Ver perfil de usuario

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.