以下是一个使用deleteLater
的简单示例:
#include <QObject>
#include <QTimer>
#include <QDebug>
class MyClass : public QObject {
Q_OBJECT
public:
MyClass(QObject* parent = nullptr) : QObject(parent) {}
public slots:
void deleteLaterDemo() {
qDebug() << "Deleting object...";
deleteLater();
}
};
int main(int argc, char** argv) {
QApplication app(argc, argv);
MyClass* obj = new MyClass();
QTimer::singleShot(3000, obj, &MyClass::deleteLaterDemo); // 3秒后调用删除槽函数
return app.exec();
}
在上面的示例中,我们创建了一个名为MyClass
的自定义QObject子类,并添加了一个名为deleteLaterDemo()
的槽函数。这个槽函数会打印一条消息,并通过调用deleteLater()
来安排对象在适当的时候进行删除。
在主函数中,我们创建了一个MyClass
对象并使用定时器(QTimer)设置了一个3秒钟后触发的单次定时器事件。该事件将触发调用deleteLaterDemo()
槽函数,从而延迟删除对象。
运行这个示例程序后,你将看到”Deleting object…“消息被打印出来,并且在3秒后程序正常退出。这表明对象已经被成功地延迟删除。
注意:由于我是文本形式的AI助手,无法直接运行GUI代码,请确保将示例代码放入Qt项目中正确编译和运行。
内容由零声教学AI助手提供,问题来源于学员提问