我有一个带有qt的数据跟踪程序,该程序从gui获取信息并将其附加到保存数据的类中。我没有使用QVector2d,因为似乎没有任何.append
方法,我搜索了qt的帮助论坛和文档。我必须使用QObject,因为我将序列化信息。数据存储在嵌套的QVector中,如此
QVector< QVector<qint8> > log_matrix;
出于某种原因,当我将QVector<qint8>
附加到嵌套QVector< QVector<qint8>>
时程序崩溃,我得不到有用的调试信息。
我已经尝试过这个作为标题中数据类的方法:
void insert_new_log(QVector<qint8> new_log)
{
this->log_matrix.append(new_log);
}
并在main.cpp文件中尝试过这个
QVector<qint8> my_data;
//initialize data
my_class->my_data_matrix.append(my_data);
我是否滥用了追加方法?还有另一种方法可以使用追加方法吗?
答案 0 :(得分:0)
您似乎忘记了方法定义中的类名。无论如何,你的方法应该有效。
void ClassName::insert_new_log(QVector<qint8> new_log)
{
this->log_matrix.append(new_log);
}
您的第二个示例未使用任何数据初始化my_data。虽然它肯定会起作用,但从外部访问一个类的公共成员传统上是不好的形式。我建议使用getter / setter。为了便于说明,我使用了this
而不是my_class
如果您愿意,也可以使用追加运算符<<
来调用append
方法。
QVector< QVector<qint8> > log_matrix;
QVector<qint8> my_data;
my_data<<1;
this->my_data_matrix<<(my_data);