c++ - 如何在Qt中传递值?

标签 c++ qt qt-creator

我正在做 NFC 项目。在此我需要检测标签并从 NFC 标签中读取标签内容,我需要将标签 ID 发送到 PHP 服务器。从服务器端我会得到 {tagId&tagcontent} 的响应。在此之后我需要提取 tagId 和 tagcontents。直到这我已经完成并且工作正常。现在我的问题是将值传递给另一个类。一旦我从服务器获得成功响应,我需要将提取的值传递给另一个类。我怎样才能做到这一点。我是 Qt 编程的新手。请帮助我。

最佳答案

您可以将参数作为键值对传递,即为此目的使用 QHash 或 QVector。

此外,如果您希望信息过于具体,您可以定义一个自定义 C++ 类,其中包含响应字段的值,并将引用从第一个类传递到另一个类。

Qt中的参数传递类似于C++。

您的 QStringList、QVector 或 QHash 都只是类。 您可以像传递任何其他自定义类一样传递这些类的对象。

例如:

在你的目标类中(比如 T):

void getResponseHeader(QHash<QString,QString> x);

在你的调用类中(比如 C):

T *t  = new T(); //or whatever instance you have
t->getResponseHeader(myParsedResponse);

更具体地说,您可以通过值或引用在 C++ 中传递参数。 对于传递对象,最好通过引用传递它们。

按值传递意味着在被调用者的堆栈上创建对象的拷贝,而改变对象意味着改变本地拷贝,因此当函数返回时调用者的对象没有改变。引用传递是指发送对象的地址(引用持有一个地址,但表现得像一个对象),以便被调用者可以直接改变原始对象。

查看此线程 What's the difference between passing by reference vs. passing by value?

http://www.codeguru.com/forum/showthread.php?t=343473 的代码论坛上提供了一个很好的示例解释。

关于c++ - 如何在Qt中传递值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8207603/

相关文章:

c++ - 在 Qt 中获取文件的网络路径

qt - QDialog 关闭时如何终止 QStateMachine?

c++ - 为什么我的 C++ 类不能使用 Qt?

c++ - 使用 QMake 制作独立的 OpenCV 应用程序

c++ - 停止计算运算符<<

c++ - 在不知道初始文件大小的情况下在 C++ 中创建压缩文件

c++ - 序列点从何而来?

c++ - 一个 C++ 函数,用于计算和采样射弹在 3D 空间中的轨迹。物理编程

c++ - 是什么让 Qt 小部件及其布局正确运行(就其大小而言)?

c++ - 是否可以在 Qt Creator IDE 中设置 wxWidgets 库?