歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Qt程序崩潰之自定義類型

Qt程序崩潰之自定義類型

日期:2017/3/1 10:04:52   编辑:Linux編程

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