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

Como puedo abrir una solo instancia de una ventana hija?

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

tengo un mdi pero quiro k al abrir una ventana hija solo me permita abrir solo una (valga la redundancia), es decir si abro la venatan productos, al querer abrir otra ventana del mismo tipo(producto) sha nu la abra solo que active la venta que ya esta abierta saludas y gracias a tooooooooooooos

Ver perfil de usuario

2 re: abrir una sola instancia el Sáb Abr 10, 2010 2:02 pm

Lo que yo haria seria mantener la referencia a la ventana hija en una variable privada.

Te creas una variable para cada ventana

QDialog *myProd;

Cuando ejecutas la accion del menu o barra de herramienta, compruebas el estado de la variable y actuas en consecuencia:
Código:

if (myProd == 0)  // no esta creada
    myProd = new QDialog();
    ... resto de las sentencias
else
    myProd.activateWindow();
Espero que te sirva la idea.
Recuerda siempre inicializar los punteros a cero en el constructor para que funcione el if.
Saludos

Ver perfil de usuario

3 Gracias lo probare hoy mismo de ahi te cuento el Sáb Abr 10, 2010 8:18 pm

eso lo nmecesitaba pa realizar un minisistema
hecho en Qt Creator.
si funca eso solo me faltara conectar la bd y lo demas seria mas sencillo. Estare en contacto
Very Happy

Ver perfil de usuario
Hi, sorry por nu haber contestado antes,
pero recien probe tu idea, estaba haciendo otro programita,pero...
tu idea funciono de maravilla.

este es my mainwindow.h
nota:los form los hago con el QT Creator("QtDesigner")
Código:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "hijito.h"
namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow {
    Q_OBJECT
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
hijito *h;
protected:
    void changeEvent(QEvent *e);

private:
    Ui::MainWindow *ui;
public slots:
 //  hijito *hijo();
    void abrir();
};

#endif // MAINWINDOW_H



Código:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
h=0;
}

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

void MainWindow::changeEvent(QEvent *e)
{
    QMainWindow::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}
void MainWindow::abrir()
{


if (h == 0)
    {// no esta creada
    h = new hijito;
  ui->mdiArea->addSubWindow(h);
  h->show();

    }
else
    {

    h->activateWindow();
    }
}



thank you Evil or Very Mad afro

Ver perfil de usuario

5 otro problema parecido el Mar Mayo 11, 2010 11:31 pm

el codigo anterior funciona si pongo esta linea:
ui->mdiArea->addSubWindow(h);

Pero si no la, solo me muestra la ventana una sola vez y cuando la cierro y desea abrirla de nuevo, ya no la abre.

como puedo obtener el valor de la referencia de esa variable (tipo ventana)
si pongo
h==null o h==0 no evalua la condicion

Ver perfil de usuario

6 Encontre la solucion el Jue Mayo 13, 2010 6:37 pm

La unica diferencia es:

antes
Código:

if(ventana==0)//tambien puede ser if(!ventana)
{
ventana=new Miventana;
ventana->show;
}
else
{
ventana->activateWindow();
}

en lugar de eso puse

Código:
if(!ventana)
    {
ventana=new Miventana();
ventana->show();

}
else
{
    ventana->show();
ventana->show();

ventana->activateWindow();
}

Solo era una linea de codigo jocolor

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.