QWidget onMinimize()onMaximize()信号

时间:2012-07-17 20:57:39

标签: qt window qwidget windowstate qevent

我正在尝试找到一个信号,知道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-&gt; accept(),也没有event-&gt; ignore()而没有返回;但是qwidget窗口总是关闭。

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

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

void QWidget::showEvent ( QShowEvent * event )   [virtual protected]
void QWidget::hideEvent ( QHideEvent * event )   [virtual protected]