Доброго времени суток.
Давно не создавал ГУЙ в Qt4 и споткнулся на простой вещи.
Имею приложение, которое представляет собой кнопку, по клику на которой создается и отображается еще один виджет.
т.е. "главным" виджетом приложения у меня является кнопка, "второстепенным" - виджет.
Так вот, если после клика на кнопке виджет находится в состоянии "show" - то, если я кликаю на "Х" кнопки, то приложение не завершается,
т.е. сама кнопка пропадает - но виджет остается в состоянии "show" (т.е. видимый на экране).
Если же я закрываю виджет или вообще его не создаю (не кликаю по ннопке) - то при клике на "X" кнопки приложение завершается.
Вопрос: что нужно добавить в проект чтобы при "активном/видимом" виджете при клике на "X" кнопки приложение завершалось?
Сорцы:
widget.h#ifndef WIDGET_H
#define WIDGET_H
#include <QtGui/QPushButton>
class Widget : public QPushButton
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
private slots:
void slotProcClick();
private:
QWidget *w;
};
#endif // WIDGET_H
widget.cpp#include "widget.h"
Widget::Widget(QWidget *parent)
: QPushButton(parent), w(0)
{
setText("Click me");
connect(this, SIGNAL(clicked()), this, SLOT(slotProcClick()));
}
Widget::~Widget()
{
if (w)
delete w;
w = 0;
}
void Widget::slotProcClick()
{
if (!w)
w = new QWidget();
w->show();
}
Проектик прилагаю.
---
Упс.. решение во вложении, нужно было добавить что то типа:
void Widget::closeEvent(QCloseEvent *event)
{
Q_UNUSED(event);
if (w)
w->hide();
}