gpt4 book ai didi

qt - QML 中有哪些对象具有 Active Focus?

转载 作者:行者123 更新时间:2023-12-04 05:45:54 25 4
gpt4 key购买 nike

我有一个带有 QML 的复杂 GUI,但在某些情况下我丢失了 焦点我不知道哪个对象具有主动焦点。

是否有任何工具或方法可以在 QML 文件中搜索并找到焦点对象?

最佳答案

我使用这一行来查看哪个项目具有事件焦点:

Window {
onActiveFocusItemChanged: print("activeFocusItem", activeFocusItem)
}

此代码响应 activeFocusItem 中的更改 Window 的属性(property)通过打印具有事件焦点的项目。 ApplicationWindow来自 Qt 快速控制 12具有相同的属性,因为它们源自 Window .

要了解项目如何获得焦点,您可以设置 QT_LOGGING_RULES环境变量到 qt.quick.focus = true .这为 Qt 的内部焦点处理启用日志记录。虽然输出可能有点棘手。

由于您使用的是 Qt Quick Controls 2,因此值得注意的是每个控件都有一个 focusPolicy 确定控件如何获得焦点的属性。控件的默认值,如 ButtonQt.StrongFocus ,这意味着按钮在被单击或选项卡后获得焦点。如果你看到一个控件有焦点并且你不希望它有焦点,只需设置它的 focusPolicyQt.NoFocus :
focusPolicy: Qt.NoFocus

关于qt - QML 中有哪些对象具有 Active Focus?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47960622/

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