Qt怎么将传递自定义数组传递给其他类
时间: 2023-12-14 11:37:14 浏览: 119
在Qt中,可以使用信号和槽机制来实现类之间的通信。如果要传递自定义数组给其他类,可以在发送信号时将数组作为参数传递,然后在接收信号的槽函数中使用该数组。
例如,假设有一个名为`MyClass`的类,其中包含一个自定义数组`myArray`,并且想要将该数组传递给另一个名为`OtherClass`的类。可以在`MyClass`中定义一个信号,该信号带有一个自定义数组参数,如下所示:
```
signals:
void myArrayChanged(QVector<int> newArray);
```
然后,可以在`MyClass`的某个方法中发射这个信号,并将`myArray`作为参数传递:
```
void MyClass::updateArray() {
// Update myArray ...
QVector<int> newArray = myArray;
emit myArrayChanged(newArray);
}
```
在`OtherClass`中,可以连接到`MyClass`的信号,并在槽函数中使用传递的数组:
```
public slots:
void handleMyArrayChanged(QVector<int> newArray);
// ...
OtherClass::OtherClass() {
MyClass *myClass = new MyClass(this);
connect(myClass, SIGNAL(myArrayChanged(QVector<int>)), this, SLOT(handleMyArrayChanged(QVector<int>)));
}
void OtherClass::handleMyArrayChanged(QVector<int> newArray) {
// Do something with newArray ...
}
```
这样,当`MyClass`中的`myArray`发生变化时,它会发射`myArrayChanged`信号,并将新的数组传递给`OtherClass`中的`handleMyArrayChanged`槽函数,从而实现了类之间的通信。
阅读全文