qt发送一个循环中的临时控件指针 之后去接收该指针
时间: 2023-11-02 18:07:29 浏览: 92
可以使用信号与槽机制来实现。
首先,在发送方的类中定义一个信号,该信号包含一个QWidget指针参数,用于传递临时控件指针:
```cpp
class Sender : public QObject
{
Q_OBJECT
signals:
void sendWidget(QWidget *widget);
public:
void send()
{
QWidget *widget = new QWidget(); // 创建一个临时控件指针
emit sendWidget(widget); // 发送信号
}
};
```
然后,在接收方的类中定义一个槽函数,用于接收该指针:
```cpp
class Receiver : public QObject
{
Q_OBJECT
public slots:
void receiveWidget(QWidget *widget)
{
// 处理临时控件指针
...
// 在不需要控件指针时,记得释放控件资源
delete widget;
}
};
```
最后,将信号连接到槽函数上:
```cpp
Sender sender;
Receiver receiver;
connect(&sender, &Sender::sendWidget, &receiver, &Receiver::receiveWidget);
```
这样,当调用`sender.send()`时,临时控件指针会被发送到接收方的槽函数中,并在槽函数中进行处理。
阅读全文