如何在C+中从QString传递文本字段文本+;? ,我需要使用TeXFieldQML的文本,然后在C++中传递到QString。< /强>
Firstpage.qml:如何在C+中从QString传递文本字段文本+;? ,我需要使用TeXFieldQML的文本,然后在C++中传递到QString。< /强> ,c++,qt,qml,C++,Qt,Qml,Firstpage.qml: Component { id: mainView Row { Image { id: logo anchors.fill: parent source: "Imagens/jscalcadosLogo.png" } ColumnLayout { id: layoutLogin
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"
}
Main.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();
}
intmain(intargc,char*argv[]){
QGUI应用程序应用程序(argc、argv);
qqmlaplicationengine;
engine.load(QUrl(QStringLiteral(“qrc:/main.qml”));
QQuickView*视图=新的QQuickView;
查看->设置源(QUrl::fromLocalFile(“FirstPage.qml”);
QObject*object=view->rootObject();
QObject*textin=object->findChild(“登录”);
//QString input=textin->Property(“text”).toString();//使程序崩溃
返回app.exec();
}
当我尝试将Textin转换为QString时,程序崩溃
有什么想法吗?很抱歉我的英语不好。一般规则是:不要读或写来自C的QML语言++
相反,您将创建C++中的<代码> qObjult<代码>派生实例,该实例具有该文本的属性。通过将该
QObject
设置为上下文属性或将其注册为单例,可以将其公开给QML
然后在qML中设置上述属性-VoILA -你已经把文本从QML世界推到C++。 关于ScCopFube关于C++和QML的交互存在各种各样的问题(我可以稍后再搜索它们,并且可能把你的问题标记为重复的,因为我确信你的问题不是第一个问题)。
还有关于这方面的更多信息。一般规则是:不要从C读取或写入QML中的内容++相反,您将创建C++中的<代码> qObjult<代码>派生实例,该实例具有该文本的属性。通过将该
设置为上下文属性或将其注册为单例,可以将其公开给QMLQObject
然后在qML中设置上述属性-VoILA -你已经把文本从QML世界推到C++。 关于ScCopFube关于C++和QML的交互存在各种各样的问题(我可以稍后再搜索它们,并且可能把你的问题标记为重复的,因为我确信你的问题不是第一个问题)。
<>也有更多的信息。“一般规则是:不要在C++中从QML读或写东西”,但是我需要使用这个连接,因为我尝试用C++中的MySQL来连接我的QML应用程序,而“文档”不清楚。我需要将此QObject传递给QString,知道吗?@Césaraugust创建一个从QObject继承的类,在该类中,您的方法负责执行所需的过程,在您的情况下,与数据库交互,并使用上下文属性或单例将其公开给QML,然后在QML侧使用该任务,执行C++侧的代码。“一般规则是:不要在C++中读取或写入QML中的东西”,但我需要使用这个连接,因为我尝试使用C++中的MySQL来连接QML应用程序,而“文档”不清楚。我需要将此QObject传递给QString,知道吗?@Césaraugust创建一个从QObject继承的类,在该类中,您的方法负责执行所需的过程,在您的情况下,与数据库交互,并使用上下文属性或单例将其公开给QML,然后在QML端使用该任务,执行在C++端实现的代码。