c++ - 在 Qt 中从对象的析构函数发出信号可以吗?

标签 c++ qt

当一个 QObject 派生的对象被析构时,是否可以从其析构函数中发出信号?我试过了,它似乎可以工作,但我不确定是否应该这样做。

比如这段代码

class MyClass : public QObject {
signals:
    void mySignal(const QString &str);
public:
    QString myString;
    ~MyClass() { emit mySignal(myString); }
}

将传递一个 const 引用到执行连接槽时可能超出范围的对象。

最佳答案

发射通常很好(QObject 也使用“破坏”信号),包括你的情况。当连接是直接的时,字符串仍然存在。而当是QueuedConnection时,则先将字符串复制到事件循环中。

关于c++ - 在 Qt 中从对象的析构函数发出信号可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14024892/

相关文章:

c++ - 如何将 C++ 代码连接到应用程序?

C++ 检查用户输入是否为 float

c++ - 重用后 DLL 使应用程序崩溃

c++ - 从问题中获取输入并在主函数中使用该输入的函数

c++ - CreateProcess 和 CreatePipe 执行进程并在 VC++ 中以字符串形式返回输出

c++ - QDialog:如何在 Windows 上启用父窗口(主窗口)的后面?

c++ - Qt 是否属于 C++ 库?如果不是库,你会如何对 QT 进行分类?

c++ - 纯虚方法调用 Error Google Protocol Buffer

qt - 如何在带有opencv-cv::Scalar的QT-QColor之间转换?

c++ - Qt 中的 Opencv 示例立即崩溃并出现错误 'The program has unexpectedly finished'