gpt4 book ai didi

c++ - 在 gui 中处理子级到父级鼠标和键盘事件的最佳方法?

转载 作者:太空宇宙 更新时间:2023-11-04 14:23:49 27 4
gpt4 key购买 nike

对于我的 Gui,我想使用以下系统:它的工作方式是,如果鼠标下的小部件没有使用鼠标或 kb 事件,它将传递给该小部件的父级,直到它被使用或到达桌面。

只有一件事让我困惑。这是否意味着如果 Button 出于某种原因将 Label 作为其子项之一。如果我单击标签,这是否意味着标签下方的我的按钮会单击(因为标签不占用鼠标),这在这种情况下是不希望的。这是否意味着我必须执行 if(mouseEvent.source == this){do button stuff} ?

谢谢

最佳答案

如果标签是子部件,那么是的,标签将尝试吃掉事件,失败(通常标签没有处理程序方法),然后将事件传回按钮。

最简单的方法可能是派生 Label 类的子类,并覆盖 handle 函数(假设这在您的工具包中是可能的 - 它应该在任何像样的工具包中)。然后,您可以使用句柄函数来捕获鼠标点击,并将任何其他事件传回按钮。

比较指针可能不是一个好主意,并且稍微取决于工具包的实现方式 - 例如,它可能将源视为按钮(因为这是它所期望的),而不是标签。

虽然我觉得 Label 本身就是一个小部件很奇怪......

关于c++ - 在 gui 中处理子级到父级鼠标和键盘事件的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5608782/

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