Cerrar cuadro ventana MdiArea
-
Saludos Chicos!
Les escribo por que mi caso es el siguiente
- Tengo un QMdiArea que tiene un dialogo como ventana hija
- 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_OBJECTpublic:
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