修复程序退出问题

This commit is contained in:
Mike Solar
2023-08-13 17:00:01 +08:00
parent 63c012709e
commit 979595c8d8

View File

@ -3,38 +3,13 @@
#include <QObject> #include <QObject>
#include <QList> #include <QList>
#include "sqlitehelper.h" #include "sqlitehelper.h"
template <typename T>
class AutoDeleteList
{
public:
// <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>
void add(T *obj)
{
objs.append(obj);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
~AutoDeleteList()
{
qDeleteAll(objs);
}
private:
QList<T *> objs;
};
class ExitManager : public QObject class ExitManager : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>˳<EFBFBD>ʱ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
template <typename T>
void add(T *obj)
{
autoDeleteList.add(obj);
}
// <20>˳<EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD> // <20>˳<EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>
void exit(int exitCode = 0) void exit(int exitCode = 0)
{ {
@ -42,14 +17,8 @@ public:
sqlite_helper.db.close(); sqlite_helper.db.close();
QSqlDatabase::removeDatabase("mydb"); QSqlDatabase::removeDatabase("mydb");
// <20><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>ź<EFBFBD> // <20><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>ź<EFBFBD>
emit exitApplication(exitCode); ::exit(exitCode);
} }
signals:
// <20>˳<EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>ź<EFBFBD>
void exitApplication(int exitCode);
private:
// <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
AutoDeleteList<QObject> autoDeleteList;
}; };