在 QML 中添加一个 QTreeView

Add a QTreeView in QML

我想向 QML 注册一个 QTreeView c++ 对象。 我试过这样注册:

main.cpp:

qmlRegisterType<QTreeView>("com.MyApp.QTreeView", 1, 0, "QTreeView");

相关代码在main.qml

import com.MyApp.QTreeView 1.0

QWindow {
    QTreeView{
        headerHidden: true
    }
}

结果:编译成功。找到了 headerHidden 属性,因此它已正确注册。但是我在运行时有一个错误: 断言:文件 kernel\qobject.cpp 中的“!d->isWidget”,第 2090 行

QWidget 不直接与 QML 兼容,因此它们可以嵌入到 QML 视图中。它们是两种不同的 UI 技术,不能以那种方式一起使用。

然而,您可以在 QWidget 层次结构中嵌入 QML 视图:

https://www.ics.com/blog/combining-qt-widgets-and-qml-qwidgetcreatewindowcontainer

或者只使用 QML TreeView 组件:

https://doc.qt.io/qttreeview/qml-treeview.html