歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Qt程序崩潰之自定義類型

Qt常常會遇到崩潰的問題,在PC機上問題較少,但是交叉編譯到Arm上之後,問題就會隔三差五的顯示出來,或許跟操作系統的成熟度有關?結合最近的心得來談談這個問題。

第一個問題就是自定義類型。在我們開發程序的時候難免要用到自定義數據類型或者對象,一般情況下我們定義出對象的屬性、方法和構造函數就可以了,但是在Qt中我們還需要析構函數以及為類型聲明QMetaType。

析構函數當然是用於銷毀對象。

為自定義類型聲明QMetaType,是因為在 Qt中負責自定義類型的類是QMetaType,否則Qt不知道該如何讀取和保存該類,也無法保存到Qvariant中。如何為類型聲明QMetaType呢?很簡單,在對象後面加入宏Q_DECLARE_METATYPE()就行了。

基本代碼如下所示:

#ifndef MACHINE_H
#define MACHINE_H

#include <QtCore>

class Machine
{
public:
    Machine();
    Machine(const Machine &other);
    ~Machine();
   
    int get_mahine_id();
    QString get_machien_name();

private:
    int        machine_id;
    QString    machine_name;
};

//將自定義類型聲明為 QMetaType
Q_DECLARE_METATYPE(Machine)

#endif // MACHINE_H

Copyright © Linux教程網 All Rights Reserved