Cerrar cuadro ventana MdiArea



  • 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();
    }
    @



  • 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!



  • 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



  • 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 :(



  • has probado con close.


Log in to reply
 

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