Как скрыть виджет, не убирая его
У меня есть изображение на заднем фоне и виджет поверх него. Мне нужно, чтобы по клику на виджет, он становился или прозрачным, или скрывался, чтобы было видно изображение заднего фона. При этом, при повторном нажатии на этот виджет, он должен снова отображаться поверх фонового изображения.
diag.cpp
#include "diag.h"
#include "ui_diag.h"
#include "qpaintwidget.h"
Diag::Diag(QWidget *parent) :
QWidget(parent),
ui(new Ui::Diag)
{
ui->setupUi(this);
scene = new QGraphicsScene(this);
view = new QGraphicsView(this);
view->setScene(scene);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scene->setSceneRect(0, 0, 1024, 768);
view->resize(1024,768);
wgt = new QPaintWidget(this); //наследуется от QWidget
wgt->installEventFilter(this);
wgt->resize(40,40);
wgt->move(200, 200);
QGraphicsProxyWidget *proxy = scene->addWidget(wgt);
view->show();
}
bool Diag::eventFilter(QObject *obj, QEvent *event)
{
if(obj==childAt(wgt->pos()))
{
if(event->type()==QEvent::MouseButtonPress)
{
if (wgtFlag == 0)
{
wgt->hide(); //нужен аналог этого
wgtFlag++;
}
else
{
wgt->show();
wgtFlag = 0;
}
}
}
return QWidget::eventFilter(obj, event);
}