4

我试图找到一个信号来知道 qwidget 何时可见或不可见,我的意思是,当 QWidget 位于桌面顶部或隐藏在某个窗口下时。

我还想知道 QWidget 窗口何时最小化以及何时恢复(未最小化)。我尝试了下一个代码,但是当我最小化我的窗口时,窗口关闭并且不在应用程序栏中。

void KGLWidget::changeEvent(QEvent *event) {
        if (event->type() == QEvent::WindowStateChange) {
            if (isMinimized() || !isVisible()) {
                emit onHide();
                event->ignore();
                qDebug() << "NO SE VE";
                return;
            }
            if(isVisible()) {
                emit onShow();
                event->ignore();
                qDebug() << "SI SE VE";
                return;
            }

        }

    QWidget::changeEvent(event);
    }

我也尝试了 event->accept(),也没有 event->ignore() 并且没有返回;但 qwidget 窗口总是关闭。

非常感谢您,我非常感谢您的时间和帮助。

提前致谢。

4

1 回答 1

1

你说窗口关闭意味着程序退出吗?您显示的代码不会导致程序退出。也许你做了一些事情使程序退出连接到信号 onHide() 和 onShow() 的槽中。

如果你只是想在小部件显示和隐藏时做一些事情,你可以尝试重新实现这两个事件处理程序

void QWidget::showEvent ( QShowEvent * event )   [virtual protected]
void QWidget::hideEvent ( QHideEvent * event )   [virtual protected]
于 2012-07-18T01:43:26.567 回答