为什么WindowStateChange事件对我不起作用

狮王

我想窗口状态从状态变化到另一个时,例如:WindowMaximizedWindowMinimizedWindowFullScreen,当改变窗口的状态下进行的东西。

使用的功能

void Widget::WindowStateChange(QEvent *event){
    if (event->WindowStateChange == Qt::WindowMaximized) {
        QMessageBox::information(this, "", "Something happen.");
    }
}

实现先前的功能时,没有任何反应。

以泽

您的方法永远不会被调用。有几个虚方法在QWidget其中,当一些事件发生的被称为:actionEventchangeEventcloseEvent其他

您可以重新实现它们并处理这些事件。

要捕获窗口状态更改,请使用changeEvent方法

当不仅更改窗口状态,还更改字体,样式等时,将调用它。这就是为什么需要过滤要处理的事件的原因。您可以通过选中进行操作event->type()

void Widget::changeEvent(QEvent* e)
{
   if (e->type() == QEvent::WindowStateChange)
   {
      QWindowStateChangeEvent* ev = static_cast<QWindowStateChangeEvent*>(e);
      if (!(ev->oldState() & Qt::WindowMaximized) && windowState() & Qt::WindowMaximized)
      {
          QMessageBox::information(this, "", "Window has been maximized");
      }
   }
   QWidget::changeEvent(e);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的调度对按钮单击事件不起作用?

来自分类Dev

为什么我在WPF中的触发事件不起作用?

来自分类Dev

为什么我的Google事件跟踪不起作用?

来自分类Dev

为什么我的onclick事件不起作用?

来自分类Dev

为什么我的onClick事件不起作用?

来自分类Dev

为什么我的 Chrome 扩展事件不起作用?

来自分类Dev

为什么触摸事件不起作用?

来自分类Dev

为什么我的printf不起作用?

来自分类Dev

为什么我的列表不起作用?

来自分类Dev

为什么我的for循环不起作用?

来自分类Dev

为什么我的代码不起作用?

来自分类Dev

为什么getchar()对我不起作用?

来自分类Dev

为什么我的排序不起作用?

来自分类Dev

为什么我的递归不起作用?

来自分类Dev

为什么我的线程不起作用?

来自分类Dev

为什么我的ItemListener不起作用?

来自分类Dev

为什么我的OpenGL不起作用?

来自分类Dev

为什么我的if(-f)不起作用?

来自分类Dev

为什么我的测试不起作用?

来自分类Dev

为什么我的阵列不起作用?

来自分类Dev

为什么我的lambda不起作用?

来自分类Dev

为什么我的setOnKeyListener()不起作用?

来自分类Dev

为什么我的菜单不起作用?

来自分类Dev

为什么我的TTS不起作用?

来自分类Dev

为什么我的延误不起作用?

来自分类Dev

为什么我的排序不起作用?

来自分类Dev

为什么我的模态不起作用?

来自分类Dev

为什么我的片段不起作用

来自分类Dev

为什么我的ItemListener不起作用?