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

Animation 如何使用Qt4制作自动隐藏菜单栏,animation,qt4,menubar,Animation,Qt4,Menubar,我正在尝试制作一个具有自动隐藏菜单栏的Qt应用程序。我该怎么做呢?这是一项有趣的任务!好吧,让我们看看。。。我建议您输入一个跟踪鼠标光标移动的代码。您需要先调用才能跟踪鼠标移动(默认情况下,鼠标移动处于关闭状态)。代码可以如下所示: QMainWindow *mainWindow = new QMainWindow; MyWidget * myWidget = new MyWidget(mainWindow); myWidget->setMouseTracking(true); mainW

我正在尝试制作一个具有自动隐藏菜单栏的Qt应用程序。我该怎么做呢?

这是一项有趣的任务!好吧,让我们看看。。。我建议您输入一个跟踪鼠标光标移动的代码。您需要先调用才能跟踪鼠标移动(默认情况下,鼠标移动处于关闭状态)。代码可以如下所示:

QMainWindow *mainWindow = new QMainWindow;
MyWidget * myWidget = new MyWidget(mainWindow);
myWidget->setMouseTracking(true);
mainWindow->setCentralWidget(myWidget);
void MyWidget::mouseMoveEvent(QMouseEvent * event) {
    bool menuVisible = inCorrectArea(event->pos());
    mainWindow->menuBar()->setVisible(menuVisible);
    ...
}
然后在小部件QWidget::mouseMove()事件中,需要检测您是否位于正确的区域。代码可以如下所示:

QMainWindow *mainWindow = new QMainWindow;
MyWidget * myWidget = new MyWidget(mainWindow);
myWidget->setMouseTracking(true);
mainWindow->setCentralWidget(myWidget);
void MyWidget::mouseMoveEvent(QMouseEvent * event) {
    bool menuVisible = inCorrectArea(event->pos());
    mainWindow->menuBar()->setVisible(menuVisible);
    ...
}
有几种方法可以访问MyWidget中的“主窗口”。其中之一是当您在MyWidget构造函数中传递MainWindow时,在MyWidget私有变量中存储指针。您还可以从MyWidget发出信号,并在主窗口中处理它


希望这能有所帮助。

您能详细介绍一下想要达到的效果吗?我希望菜单栏仅在鼠标光标垂直位于程序区域0-50像素之间时显示,否则自动隐藏。类似windows任务栏自动隐藏功能。