如何使用Qt4制作自动隐藏菜单栏

时间:2011-04-19 16:02:25

标签: animation qt4 menubar

我正在尝试创建一个具有自动隐藏菜单栏的Qt应用程序。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

这是一项有趣的任务!好的,让我们看一下......我建议你在QMainWindow::centralWidget()中放一个跟踪鼠标光标移动的代码。您需要先调用QWidget::setMouseTracking(true)才能跟踪鼠标移动(默认情况下它们处于关闭状态)。代码可能如下所示:

QMainWindow *mainWindow = new QMainWindow;
MyWidget * myWidget = new MyWidget(mainWindow);
myWidget->setMouseTracking(true);
mainWindow->setCentralWidget(myWidget);

然后在您的小部件QWidget :: mouseMove()事件中,您需要检测您是否在正确的区域。代码可能如下所示:

void MyWidget::mouseMoveEvent(QMouseEvent * event) {
    bool menuVisible = inCorrectArea(event->pos());
    mainWindow->menuBar()->setVisible(menuVisible);
    ...
}

有几种方法可以在MyWidget中访问“mainWindow”。其中之一是在MyWidget构造函数中传递MainWindow时将指针存储在MyWidget私有变量中。您也可以从MyWidget发出信号并在MainWindow中处理它。

希望这有帮助。