#  > Desenvolvimento >  > Linguagens de Programação >  >  Abrir nova janela em C++

## NeoRamza

Pessoal, eu criei duas janelas usando o QT Designer. Como eu faço para que quando clicar em um botao no primeiro formulario apareca a segunda janela?

----------


## hez4el

Procura o metodo show(), do objeto janela que voce criou

----------


## NeoRamza

Tudo bem. Mas como fazer para eu usar a funcao show() de um objeto que nao está no mesmo form? Ou seja, uma janela vai abrir a outra.

----------


## hez4el

Voce tem que colocar a classe da janela q voce quer criar como include no arquivo q vc quer criar uma instancia de objeto dessa classe e depois chamar o metodo show() dela.
Ex genérico:

#include <minhajanela.hpp>


public void criaJanela()
{
MinhaJanela jan = new MinhaJanela();
jan.Show(); 
}

isso aqui é básico, claro que tem mais coisa q pode ser feito
acho bom vc pegar um tutor de c++ pra dar um auxilio.

Abraços

----------


## NeoRamza

Acho q o problema nao é nem saber c++ e sim saber como usar a biblioteca qt.

Mas por favor, tente me ajudar:

imagine dois formularios (janelas) Form1 e Form2. No primeiro eu só tenho um botao, e na segunda somente um label. No form1 eu crio uma funcao e faco uma coneccao com o botao. Mas o q eu prescisaria colocar dentro dessas funcao para conseguir abrir a segunda janela?

----------


## NeoRamza

ajuda ae pessoal, por favor.

----------


## 1c3m4n

Se teu problema num eh C++ usa esse forum
http://www.qtforum.org/

----------


## 1c3m4n

> #include <minhajanela.hpp>
> public void criaJanela()
> {
> MinhaJanela jan = new MinhaJanela();
> jan.Show(); 
> }


Eh como o hez4el disse.... no seu botao vc vai ter q xamar a funcao criajanela()

----------


## NeoRamza

Depis de muitas tentativas eu consegui o que queria. Porem nao usei a funcao show() como sujerido pelos amigos, usei a funcao exec() e só assim funcionou. Gostaria de saber a diferenca entre elas.

----------


## NeoRamza

Eu fiz o seguinte para abrir uma outra janela:

#include "frmform2.h"

void frmForm1::Novoform2()
{
frmForm2 frmform2;
frmform2.exec();
}

Agora quando eu clico no botao a seguinda janela abre normalmente. Mas quando a segunda janela está aberta é mostrada um icone para cada uma das janelas na barra de tarefas. Como eu faco para mnostrar somente uma? E como fazer com que o primeiro form fique inacessível quando a segunda janela estiver aberta?

----------


## HadleyLima

cara eu até sei e ia te ajudar mas , é de 2004 se já deve ter até morrido ..... R.I.P

----------

