在Qt应用程序中排序QMainWindows

时间:2013-05-31 16:33:18

标签: qt qt4

我有一个应用程序,在mainWindow(继承自QMainWindow)中创建一个childWindow(也从QMainWindow继承),运行时,两个窗口都会在childWindow屏蔽mainWindow的情况下启动。

在mainWindow()构造函数中我有

setCentralWidget(this);

在Linux上点击mainWindow-> titleBar时,mainWindow会被带到前面,而在Windows上这似乎不起作用。

为了在各个平台上获得一致的行为,我添加了一个installEventFilter()和mouseEventHandler来解释左键鼠标事件,但是我在鼠标事件处理程序中使用的所有方法都没有帮助我实现我需要的行为。

void mainWindow::mouseReleaseEvent(QMouseEvent* mevent)
{
  if (Qt::LeftButton == mevent->button())
  {
    //this->raise();
    //this->show();
    //setCentralWidget(this);

  }
}

当我按下(鼠标事件)标题栏时,如何切换到mainWindow()? 是否有一个原因导致Windows和Linux上的行为不同以及我如何使其保持一致?我正在使用适用于Windows和Linux的Qt-4.8.4的开源版本。

1 个答案:

答案 0 :(得分:1)