第一种方案:
1.工程配置QT += quick
2.在QMainWindow类中包含头文件#include <QQuickView>
3.private下定义一个QQuickView 变量:
private:
Ui::MainWindow *ui;
QQuickView view;
以上配置后,你在退出程序时,ctk就不会报错了。
第二种方案(推荐):
CTK插件有自己集成QT的界面框架,如果我们在用界面UI类(QWidget或者QMainWindow之类的)去继承CTK通讯事件时,插件在析构时,就会析构我们的界面,导致和QT自带的析构相冲突,导致崩溃。
所以,解决方案就是将界面类和ctk服务当成两个东西分离开。用QObject的去继承ctk通信事件,然后在QObject的类中定义成员变量QMainWindow或者QWidget,最后在QObject的析构函数中,直接delete QMainwidnow和QWidget类。切记:用ctk当作通信时,界面类一定不要继承它,析构的时候一定崩溃。