将QTreeWidget插入到QQuickWindow子元素中

时间:2014-01-25 00:57:41

标签: c++ qt qt5

我想在我的顶级QQuickWindow中插入一个QTreeWidget。可能吗?下面的代码被评论以显示我的一般想法。

IDEA.CPP

....
//in main somewhere
QTreeWidget *tree = new QTreeWidget();

//Magically insert tree into window
....

的main.cpp

int main(int argc, char *argv[])
{

    QApplication app(argc, argv);
    QQmlApplicationEngine engine;

    qmlRegisterType<Data>();


    engine.rootContext()->setContextProperty("classInstance", new polysync_api_wrapper);
    engine.rootContext()->setContextProperty("trace", new Trace);

    engine.load(QUrl("qml/main.qml"));
    QObject *topLevel = engine.rootObjects().value(0);
    QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel);

    window->show();

    return app.exec();
}

main.qml

ApplicationWindow {

    ......
    Rectangle {
        id: treeWindowContainer
        ....

        --->**TREE WIDGET GOES HERE PLZ!?   SUCH AMAZE!!!**<---
        ....
    }

}

谢谢大家!所有有些像样的建议得到了支持!!!现在是星期五!!!

1 个答案:

答案 0 :(得分:0)

您需要一个包裹QWidget的项目。没有这样的项目,但最接近的是QQuickPaintedItem。您需要从中派生并编写一个可以采用QWidget实例并使用其render方法绘制项目的项目。在两者之间转发事件方面还有很多工作要做。