qt 存放二维数组容器
时间: 2024-11-12 20:43:02 浏览: 22
在Qt中,可以使用`QVector`、`QMatrix`或者自定义`QObject`子类来存放二维数组数据。以下是几种常见的做法:
1. **QVector**: `QVector`是一个动态数组容器,可以存储任意类型的元素。你可以创建一个`QVector<QVector<int>>`来存储整数型的二维数组。
```cpp
QVector<QVector<int>> matrix;
matrix.resize(rows, cols); // 设置行数和列数
matrix[0][0] = 1; // 填充元素
```
2. **QMatrix**: `QMatrix`是专门为矩阵设计的数据结构,它继承自`QRect`,所以底层也是基于`QVector`。你可以直接赋值给`QMatrix`,或者通过它的成员函数操作。
```cpp
QMatrix<int> m(4, 5); // 创建一个4x5的矩阵
m(0, 0) = 1; // 访问并设置元素
```
3. **自定义QObject子类**: 如果需要更复杂的二维数组,并且有特定业务逻辑,你可以创建一个继承自`QObject`的类,将二维数组作为私有变量,并提供getter/setter方法。
```cpp
class MyArray : public QObject {
private:
QVector<QVector<int>> array;
public:
explicit MyArray(int rows, int cols);
QVector<int>& getArray() { return array; }
void setArray(QVector<QVector<int>>& newArray) { array = newArray; }
};
```
阅读全文