1. 介绍
Qt中,QWidget
隐藏时,默认不发送信号。需要重写hideEvent()
函数实现。
2. 代码
c
#include <QWidget>
class MyWidget : public QWidget
{
Q_OBJECT
signals:
void hiddenStateChanged(bool isHidden);
protected:
void hideEvent(QHideEvent* event) override
{
QWidget::hideEvent(event);
emit hiddenStateChanged(true); // 发射隐藏状态改变信号
}
void showEvent(QShowEvent* event) override
{
QWidget::showEvent(event);
emit hiddenStateChanged(false); // 发射显示状态改变信号
}
};