Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Portuguese
  4. Classes

Classes

Scheduled Pinned Locked Moved Portuguese
3 Posts 2 Posters 1.5k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    dolbycpp
    wrote on last edited by
    #1

    Bom pessoal, a dúvida é a seguinte, eu tenho 2 classes, sendo ela Form e MainWindow.

    Eu inicializo a Form no main para exibir a janela
    @Form start;
    start.show();@

    E em um certo evento nesta classe Form(PushButton), eu quero inicializar a outra classe, MainWindow e fechar a Form:
    @
    MainWindow window;
    window.show();
    @

    Porém a GUI da classe MainWindow simplesmente aparece e some do nada, e não consigo fechar a GUI Form desta forma
    @Form.close();@

    Já que ela se encontra em outro arquivo e em outra classe(main.cpp).

    Como eu poderia fazer isto? Desejo fechar a "janela" Form ao clicar no botão e exibir a janela MainWindow.

    É uma dúvida até meio besta, mas tem me deixado de cabeça quente de tanto pensar rs.

    1 Reply Last reply
    0
    • A Offline
      A Offline
      Arnaut
      wrote on last edited by
      #2

      Olá,
      @MainWindow window;
      window.show();@

      window é uma variável local da função que contém esse fragmento de código. Assim que a função termina ela é destruida, por isso a janela aparece e desaparence imediatamente em seguida.

      Mude para
      @MainWindow* window = new MainWindow();
      window->show();@

      note que objetos criados com o operador new precisam ser destruidos com o operador delete para liberar a memória alocada para eles.

      Quanto a sua segunda questão, você precisa passar um ponteiro ou referência do objeto start para o objeto window ou não tem como o segundo objeto saber da existência do primeiro.

      Mas nesse caso específico por que você não fecha o primeiro widget na mesma função que você está usando para criar e mostrar o segundo?

      Sucesso com seu projeto,
      H.

      1 Reply Last reply
      1
      • D Offline
        D Offline
        dolbycpp
        wrote on last edited by
        #3

        Olá Arnaut, obrigado pela sua resposta, era o que eu necessitava ^^. Obrigado pela sua bela explicação, estava acontecendo o que eu estava a suspeitar mesmo.

        Abraços.

        1 Reply Last reply
        0

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved