小编AZo*_*zua的帖子

如何从C++修改QML文本

我是Qt的新手,我正在尝试从C++代码修改QML文本(在屏幕上显示).我修改了文本,但没有在屏幕上更新,所以我修改了文本变量,但是屏幕上的第一个文本.

这是代码:

//main.cpp

#include <QApplication>
#include <QDeclarativeEngine>
#include <QDeclarativeComponent>
#include <QDeclarativeItem>
#include <QDebug>
#include "qmlapplicationviewer.h"

Q_DECL_EXPORT int main(int argc, char *argv[])
{
    QScopedPointer<QApplication> app(createApplication(argc, argv));

    QmlApplicationViewer viewer;
    viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
    viewer.setMainQmlFile(QLatin1String("qml/textModification/main.qml"));
    viewer.showExpanded();

    QDeclarativeEngine engine;
    QDeclarativeComponent component(&engine, QUrl::fromLocalFile("qml/textModification/main.qml"));
    QObject *object = component.create();

    QObject *item = qobject_cast<QDeclarativeItem*>(object);
    QObject *text = item->findChild<QObject*>("text1");
    qDebug() << "Text of 'text1' when it's created' -------->" << text->property("text");

    text->setProperty("text", "THIS WORKS!");

    qDebug() << "Text of 'text1' after modifying it -------->" << text->property("text");

    return app->exec();
}
Run Code Online (Sandbox Code Playgroud)

//main.qml

import QtQuick 1.0

Item …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qt-quick

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

qml ×1

qt ×1

qt-quick ×1