gpt4 book ai didi

c++ - QT setMouseTracking(true) 完全没有效果

转载 作者:行者123 更新时间:2023-11-30 04:46:45 27 4
gpt4 key购买 nike

这是我的代码,我正在 try catch 鼠标输入,除非我按住鼠标左键,否则它不起作用。键盘输入非常好。

  QWidget *window = new QWidget();
QHBoxLayout *hl = new QHBoxLayout();
QVBoxLayout *vl = new QVBoxLayout();
main = new input_browser_main();
main->setFixedWidth(640);
main->setFixedHeight(480);

hl->addWidget(vncmain);
vl->addLayout(hl);
QWidget* centralWidget = new QWidget();
centralWidget->setLayout (layout);
centralWidget->setFixedHeight(100);
vl->addWidget(centralWidget);
window->setLayout(vl);

this->setCentralWidget(window);
}

由于某种原因没有捕获鼠标移动?我正在调用 setMouseTracking 但我没有收到任何数据。我对 QT 和 C++ 比较陌生,正在制作此应用程序以响应客户要求的 UI。所以我想要实现的是仅在 Widget 内部获取鼠标 x,y。

最佳答案

您需要为鼠标实际所在的小部件启用鼠标跟踪。看来您有子部件。这些子部件需要启用鼠标跟踪,以便它们将鼠标移动事件传播到它们的父部件。

您只需调用一次 setMouseTracking(true); 即可。当鼠标进入/离开时,您不需要启用/禁用鼠标跟踪。这意味着您不需要 enterEvent()leaveEvent() 处理程序。

关于c++ - QT setMouseTracking(true) 完全没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56608007/

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