gpt4 book ai didi

c++ - 如何在 C++ 中从 QString 传递 TextField 文本?

转载 作者:行者123 更新时间:2023-11-30 01:06:12 25 4
gpt4 key购买 nike

大家好,我需要获取 TextField QML 的文本,然后传递给 C++ 中的 QString。

首页.qml:

Component {

id: mainView

Row {

Image {
id: logo
anchors.fill: parent
source: "Imagens/jscalcadosLogo.png"
}

ColumnLayout {
id: layoutLogin
anchors.centerIn: parent
anchors.margins: 3
spacing: 3

TextField {
id: login
objectName: "login"
Layout.fillWidth: true
placeholderText: "Username"

}

主要.cpp:

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

QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

QQuickView *view = new QQuickView;
view->setSource(QUrl::fromLocalFile("FirstPage.qml"));
QObject *object = view->rootObject();
QObject *textin = object->findChild<QObject*>("login");
//QString input = textin->Property("text").toString(); // crash the program

return app.exec();
}

当我尝试将 Textin 转换为 QString 时程序崩溃

有什么想法吗?我很抱歉我的英语不好。

最佳答案

一般规则是:不要从 C++ 读取或写入 QML 中的内容

相反,您应该在 C++ 中创建一个 QObject 派生实例,该实例具有该文本的属性。您将该 QObject 公开给 QML,方法是将其设置为上下文属性或将其注册为单例。

然后在 QML 中设置上述属性 - 等等 - 您已将文本从 QML 世界推送到 C++。

StackOverflow 上有各种关于 C++ 和 QML 交互的问题(稍后我可能会搜索它们,并且可能将您的问题标记为重复,因为我确定您的问题不是第一个)。

还有 documentation有关于此的更多信息。

关于c++ - 如何在 C++ 中从 QString 传递 TextField 文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46833661/

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