QML TextField输入的文本传输到C++
2021/5/12 12:25:11
本文主要是介绍QML TextField输入的文本传输到C++,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言:实验室的项目需要在C++中读取在QML中密码输入框输入的文本,QML密码输入框用的是TextField组件。本人技术不精,折腾了很久才找到这种方法。下面给出的代码只是相关的关键代码,整体代码就没放了。大家可以模仿着插入自己代码中。
方法总结:注册一个中间类TransObj用于数据的传输
代码:
1、TextField文本输入框
TextField { id: inputpassword width: 250 height: 40 font.bold: true font.pointSize: 14 placeholderText: qsTr("Enter password") anchors.centerIn: parent style:TextFieldStyle { textColor: "black" background: Rectangle { radius: 2 implicitWidth: 150 implicitHeight: 40 color: "white" } } }
2、在C++头文件中定义一个开放给QML调用的函数Q_INVOKABLE void getFromQml(Qstring text);
#include <QObject> class USB_plug : public QObject { Q_OBJECT public: Q_INVOKABLE void getFromQml(QString text) { password = text; qDebug() << password << "#############" << text; }
3、在main.cpp
声明一下(已经链接到qml)
#include "usb_plug.h" int main(int argc, char *argv[]) { //省略其他代码,关键代码如下: qmlRegisterType<USB_plug>("an.qml.TransObj", 1, 0, "TransObj"); return app.exec(); }
2、QML中 import an.qml.TransObj 1.0
,并且定义TransObj{id: transobj}
得到变量TransObj
import an.qml.TransObj 1.0 TransObj{ id: transobj }
3、通过TransObj变量直接调用getFromQml()得到文本传入C++
MouseArea { //省略其余代码 onClicked: { transobj.getFromQml(inputpassword.text) } }
以上就能完成将TextField输入的文本传输到C++中,password存放的就是输入的文本
(我是一个转行过来的小菜鸡,渴望学习掌握更多的技术,这是我的第一篇个人随笔吧算是,希望有一个好的开始。)
这篇关于QML TextField输入的文本传输到C++的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用
- 2025-01-03混合搜索:用LanceDB实现语义和关键词结合的搜索技术(应用于实际项目)
- 2025-01-03停止思考数据管道,开始构建数据平台:介绍Analytics Engineering Framework
- 2025-01-03如果 Azure-Samples/aks-store-demo 使用了 Score 会怎样?
- 2025-01-03Apache Flink概述:实时数据处理的利器
- 2025-01-01使用 SVN合并操作时,怎么解决冲突的情况?-icode9专业技术文章分享
- 2025-01-01告别Anaconda?试试这些替代品吧
- 2024-12-31自学记录鸿蒙API 13:实现人脸比对Core Vision Face Comparator