c++ - Qt-追加到QList

标签 c++ qt

我从全局类中创建了 QList

global.h:

class CLastMessage
{
public:
    QString id;
    QString message;
};
typedef QList<CLastMessage> CLastMessageList;

我在另一个标题中调用了它:

message.h:

CLastMessageList m_lastMessage;

但我在将新值附加到此 Qlist 时遇到问题。在 message.cpp 我想附加新的 id 和消息,但我不知道如何以最好的方式做到这一点。例如我想向这个列表中添加新的 id。这是对的吗?

消息.cpp:

CLastMessageList m_lastMessage;
m_lastMessage.id = "1";

最佳答案

您的自定义类目前是可赋值的,因此您不需要显式复制构造函数或赋值运算符。

问题在于如何将项目添加到列表中:

CLastMessageList m_lastMessage; // this is declaring a new list
m_lastMessage.id = "1"; // this is invalid, as id is not a property of QList

此代码重新声明列表的对象 (m_lastMessage)。然后您尝试将变量设置为列表,但 id 不是列表的成员,而是您可以存储在列表中的对象的成员。因此,首先创建一个对象,然后将其添加到您的列表中:

CLastMessage message;
message.id = "1";
m_lastMessage.append(message); 

关于c++ - Qt-追加到QList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31113327/

相关文章:

qt - 我想处理 QWebView 中单击的链接

c++ - 尝试在 MFC 应用程序中使用 QSettings 时出错

c++ - 将嵌套表从 Lua 传递到 C

c++ - 为什么阻塞套接字会重复返回 0 长度数据?

c++ - 在 C++ 中打开和显示图像?

c++ - QT中使用QjsonDocument解析api数据

C++ 使用文件不工作初学者

c++ - 我需要默认隐藏 QTableWidget

qt - 在 qt 快捷方式中复制 LINE

c++ - 围绕其中心旋转矩形