Qt QWidget onMinimize()onMaximize()信号

Qt QWidget onMinimize()onMaximize()信号,qt,window,qwidget,windowstate,qevent,Qt,Window,Qwidget,Windowstate,Qevent,我试图找到一个信号来知道qwidget何时可见或不可见,我的意思是,qwidget何时位于桌面顶部或何时隐藏在某个窗口下 我还想知道QWidget窗口何时最小化以及何时恢复(未最小化)的信号。我已经尝试了下一个代码,但是当我最小化窗口时,窗口关闭并且不在应用程序栏中 void KGLWidget::changeEvent(QEvent *event) { if (event->type() == QEvent::WindowStateChange) {

我试图找到一个信号来知道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);
    }
void KGLWidget::changeEvent(QEvent*事件){
如果(事件->类型()==QEvent::WindowsStateChange){
如果(isMinimized()| |!isVisible()){
emit onHide();
事件->忽略();
qDebug()忽略();
qDebug()accept(),也没有事件->忽略(),也没有返回;但qwidget窗口始终关闭

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


提前感谢。

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

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

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