如何在启动时隐藏鼠标指针?

时间:2013-11-26 13:56:27

标签: c++ qt embedded touchscreen

我有一个运行linux的嵌入式触摸屏,我的应用程序是Qt / C ++。

我使用main函数启动应用程序,如下所示:

#include <QApplication>
#include <QThread>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    // Create the app
    QApplication app(argc, argv);

    // Hide the pointer
    app.setOverrideCursor( QCursor( Qt::BlankCursor ) );

    // Create main window
    MainWindow *window = new MainWindow;

    // Set up the UI and execute the App
    window->show();
    app.exec();

    // tidy up
    delete(window);
    return 0;
}

我遇到的问题是,当我运行程序时,光标正在显示。但是一旦我触摸屏幕(应用程序是一个全屏应用程序),光标就会消失。

我已经读到这可能是一个简单的焦点问题 - 即我的应用程序不是焦点或某些人。如何确保我的应用程序成为启动时的重点?

或者

隐藏鼠标指针有什么问题吗?

--- --- EDIT

如果我删除了行app.setOverrideCursor( QCursor( Qt::BlankCursor ) );,那么我就专注于我的应用。所以这条线不知何故让我的应用失去了重点。

因此,作为一个快速入侵,我将一个QTimer放在MainWindow中并将其设置为100ms(只是为了只在事件处理开始后才会处理它 - 即在app.execute()之后)。然后我将计时器事件连接到我称之为“getFocusOnMeNow()”的插槽函数,我在其中:

this->activateWindow();
this->setFocus();

这很有效。

所以现在我想整理一下。我可以在MainWindow中调用app.execute()之后调用哪个函数/插槽来获得焦点?我没有看到可以重载的MainWindow :: start()插槽......?

1 个答案:

答案 0 :(得分:1)

尝试

app.setCursorVisible(false);

这可能对你有帮助。