gpt4 book ai didi

c++ - 当我有一堆小部件时,Qt 如何设置全局 mouseReleaseEvent

转载 作者:行者123 更新时间:2023-11-30 03:03:33 25 4
gpt4 key购买 nike

有没有办法设置全局mouseReleaseEvent?
我的意思是我有 QMainWindow 和它 QFrame 和 init QListView 和它我有构造 QListView 的小部件,在小部件内部我有各种标签和文本字段。所以我想在我的应用程序中的任何地方检测 mouseRelease 我必须在所有小部件中实现 mouseReleaseEvent?

void ItemWidget::mouseReleaseEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
;
}
event->accept();
}

最佳答案

根据QMouseEvent documentation ,接收鼠标按下的小部件也将获得鼠标释放。因此,除了接收原始按下的小部件之外,您不必再寻找鼠标释放。这通常称为鼠标“抓取”。

您可能还想检查 Qt::WA_NoMousePropagation 是否未在您的 child 上设置。如果已设置,它将确保您的鼠标事件不会冒泡。

如果你真的想捕获所有鼠标释放事件,你可以尝试安装一个 event filter在 QApplication 本身上。这是一个有点繁重的解决方案,但您应该获得每个鼠标释放事件。

关于c++ - 当我有一堆小部件时,Qt 如何设置全局 mouseReleaseEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9274693/

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