gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:21 25 4
gpt4 key购买 nike

我有一个运行 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;
}

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

我读到这可能是一个简单的焦点问题 - 即我的应用程序没有焦点或类似问题。如何确保我的应用在启动时成为焦点?

或者

我在隐藏鼠标指针方面做错了什么吗?

---编辑---

如果我删除 app.setOverrideCursor( QCursor( Qt::BlankCursor ) ); 行,那么我就会专注于我的应用程序。所以这一行不知何故使我的应用程序失去了焦点。

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

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

这行得通。

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

最佳答案

尝试

app.setCursorVisible(false);

这对你有帮助吗

关于c++ - 如何在启动时隐藏鼠标指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20219036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com