Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Cerrar cuadro ventana MdiArea

    Spanish
    5
    5
    9112
    Loading More Posts
    • 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.
    • M
      mrondon last edited by

      Saludos Chicos!

      Les escribo por que mi caso es el siguiente

      1. Tengo un QMdiArea que tiene un dialogo como ventana hija
      2. hago click en el boton cerrar del dialog y este no se cierra sino que desaparece todo el contenido del mismo

      como puedo cerrar este dialog?

      codigo que utilizo es

      @
      #include "dialog.h"
      #include "ui_dialog.h"

      Dialog::Dialog(QWidget *parent) :
      QDialog(parent),
      ui(new Ui::Dialog)
      {
      ui->setupUi(this);

      connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(closeWindow()));
      

      }

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

      void Dialog::closeWindow()
      {
      this->close();
      }
      @

      1 Reply Last reply Reply Quote 0
      • I
        Iktwo last edited by

        Hola, al hacer this->close(); el método debería ejecutarse sobre tu Dialog, decis que al darle click al botón te borra el contenido, pero no cierra el dialogo? He utilizado dialogos y nunca he tenido que programar el botón de cerrar, podrías explicarme un poco más tu problema?

        Te recomiendo que uses nombres representativos para tus componentes, podrías renombrar ese pushButton a algo como btnCerrar, bueno espero poder ayudarte, saludos!

        1 Reply Last reply Reply Quote 0
        • X
          xlarsx last edited by

          Tengo el siguiente código y el funcionamiento es el esperado, podrías comentar en que difiere en general:

          dialog.h
          @
          #ifndef DIALOG_H
          #define DIALOG_H

          #include <QDialog>

          namespace Ui {
          class Dialog;
          }

          class Dialog : public QDialog
          {
          Q_OBJECT

          public:
          explicit Dialog(QWidget *parent = 0);
          ~Dialog();

          public slots:
          void closeWindow();

          private:
          Ui::Dialog *ui;
          };

          #endif // DIALOG_H
          @

          dialog.cpp
          @
          #include "dialog.h"
          #include "ui_dialog.h"

          Dialog::Dialog(QWidget *parent) :
          QDialog(parent),
          ui(new Ui::Dialog)
          {
          ui->setupUi(this);

          connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(closeWindow()));
          

          }

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

          void Dialog::closeWindow()
          {
          this->close();
          }
          @

          Dialog.ui

          @
          <?xml version="1.0" encoding="UTF-8"?>
          <ui version="4.0">
          <class>Dialog</class>
          <widget class="QDialog" name="Dialog">
          <property name="geometry">
          <rect>
          <x>0</x>
          <y>0</y>
          <width>400</width>
          <height>300</height>
          </rect>
          </property>
          <property name="windowTitle">
          <string>Dialog</string>
          </property>
          <widget class="QPushButton" name="pushButton">
          <property name="geometry">
          <rect>
          <x>300</x>
          <y>250</y>
          <width>75</width>
          <height>23</height>
          </rect>
          </property>
          <property name="text">
          <string>PushButton</string>
          </property>
          </widget>
          </widget>
          <layoutdefault spacing="6" margin="11"/>
          <resources/>
          <connections/>
          </ui>
          @

          Saludos

          1 Reply Last reply Reply Quote 0
          • L
            lili last edited by

            Hola mrondon me esta pasando lo mismo, pudiste solucionarlo.
            pq con this->close(); solo me oculta el contenido de la ventana pero no la cierra :(

            1 Reply Last reply Reply Quote 0
            • T
              topocc last edited by

              has probado con close.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post