什么对象在QML中主动关注?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么对象在QML中主动关注?相关的知识,希望对你有一定的参考价值。

我有一个复杂的图形用户界面与QML,但在某些情况下,我失去了我的焦点,我不知道什么对象有主动焦点。

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

答案

我使用此行来查看哪个项目具有活动焦点:

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

此代码通过打印具有活动焦点的项目来响应activeFocusItemWindow属性的更改。来自Qt Quick Controls的ApplicationWindow 12拥有相同的财产,因为它们来自Window


要了解项目如何获得焦点,您可以将QT_LOGGING_RULES环境变量设置为qt.quick.focus = true。这样可以记录Qt的内部焦点处理。尽管如此,输出可能有点棘手。

由于您使用的是Qt Quick Controls 2,因此值得注意的是每个控件都有一个focusPolicy属性,用于确定控件如何获得焦点。像Button这样的控件的默认值是Qt.StrongFocus,这意味着按钮在被点击或标签后变得焦点。如果你看到控件有焦点并且你不想要它,只需将它的focusPolicy设置为Qt.NoFocus

focusPolicy: Qt.NoFocus

以上是关于什么对象在QML中主动关注?的主要内容,如果未能解决你的问题,请参考以下文章

scrapy主动退出爬虫的代码片段(python3)

如何在 C++ 中获取 QML 方法的源代码?

为什么要使用QStringLiteral?

主动对象

如何在 C++ 代码中的一些“繁重”操作之前使 QML 对象可见

转载 qml: MouseArea重叠问题;