Navegação entre janelas



  • Estou iniciando no Qt Creator. Desenvolvi aplicações e outras linguagens, e uma coisa muito comum é a troca de tela, por exemplo, há um menu cadastro, por exemplo, e nele tem cliente, carro, etc... Ao clicar em cliente vai para a tela com o formulário de cadastro do cliente, ao clicar em carro vai para a tela com o formulário de cadastro de carro, ao clicar em visualizar um cliente, vai para a tela de visualização de cliente, etc... Como é feito no Qt Creator esta alternação entre telas, vi que tem algumas maneiras de fazer, mas não sei qual é a correta.

    Obrigado.



  • Dan Rosen,

    É, realmente existem váaaaaaarias formas.
    Uma delas usando QtCreator:

     Estando com seu projeto aberto, no menu:   'file | new file or project'
     No grupo 'files and classes' escolha:  'qt | qt designer form class'
     Defina como base 'qwidget' e confirme (por padrão será adicionado automaticamente ao projeto).
    
    Adicione o header desse novo form ao projeto, e conecte um signal->slot para dar um show. 
    

    www.rjrsoftware.com.br/MultiFormQt.zip (Exemplo)

    Felicidades.



  • Obrigado @ReinaldoJr. É quase isto, só que eu me refiro ali onde tem o botão show cadastro, sumir, e aparecer a tela que abre como dialog, naquele lugar. É isto, só abrir o que abriu no dialog naquele lugar. Andei pesquisando e parece que tem algo a ver com QStackedWidget, não sei exatamente.

    Abraços.



  • Para fazer isso você tem que incluir no form um componente QMdiArea.
    No construtor do MainWindow adicione a linha 'ui->mdiArea->addSubWindow(&cad);'



  • Segue exemplos:

    // Não Modal:
    DialogCliente *dialog = new DialogCliente(this);
    dialog->show();
    dialog->exec();

    // Modal:
    DialogCliente *dialog = new DialogCliente(this);
    dialog->setModal(true);
    dialog->show();
    dialog->exec();
    delete dialog;

    // MDI:
    DialogCliente *dialog = new DialogCliente(this);
    ui->mdiArea->addSubWindow(dialog);
    dialog->show();

    Qualquer dúvida chama aí !



  • Obrigado. Já foi de grande ajuda.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.